Вопросы с тегом 'pointers'

Тип данных, который "указывает на" другое значение, хранящееся в памяти. Переменная указателя содержит адрес памяти другого объекта (переменной или функции или другого объекта). Этот тег должен использоваться для вопросов, связанных с использованием указателей, а не ссылок. Наиболее распространенными языками программирования с использованием указателей являются языки C, C++, Go и ассемблера. Используйте специальный тег языка. Другими полезными тегами являются метод, функция, структура и т.д., Описывающие использование указателя.
35
ответов

Каковы различия между переменной указателя и ссылочной переменной в С++?

Я знаю, что ссылки - это синтаксический сахар, поэтому код легче читать и писать. Но каковы различия? Резюме из ответов и ссылок ниже: Указатель может быть повторно назначен любым количеством раз, в то время как ссылка не может быть повторно назн...
задан 11 сент. '08 в 23:03
6
ответов

Когда следует использовать static_cast, dynamic_cast, const_cast и reinterpret_cast?

Какое правильное использование: static_cast dynamic_cast const_cast reinterpret_cast C-стиль (type)value Литье в стиле функции type(value) Как вы решаете, что использовать в каких случаях?
задан 01 дек. '08 в 23:11
8
ответов

Регулярное литье против static_cast vs. dynamic_cast

Я пишу код C и С++ почти двадцать лет, но есть один аспект этих языков, которые я никогда не понимал. Я, очевидно, использовал регулярные роли, т.е. MyClass *m = (MyClass *)ptr; повсюду, но, похоже, есть два других типа бросков, и я не знаю разниц...
задан 26 авг. '08 в 16:20
14
ответов

Что такое умный указатель, и когда я должен его использовать?

Что такое умный указатель и когда я должен его использовать?
задан 20 сент. '08 в 3:09
17
ответов

С массивами, почему это так, [5] == 5 [a]?

Как указывает Джоэл в подкасте # 34, в Язык программирования C (aka: K и R), упоминается это свойство массивов в C: a[5] == 5[a] Джоэл говорит, что это из-за арифметики указателя, но я до сих пор не понимаю. Почему a[5] == 5[a]?
задан 19 дек. '08 в 20:01
21
ответ

Почему я должен использовать указатель, а не сам объект?

Я исхожу из фона Java и начал работать с объектами на С++. Но мне пришло в голову то, что люди часто используют указатели на объекты, а не сами объекты, например это объявление: Object *myObject = new Object; а не: Object myObject; Или вместо ...
задан 03 марта '14 в 14:54
13
ответов

В чем разница между const int *, const int * const и int const *?

Я всегда испортил, как правильно использовать const int*, const int * const и int const *. Существует ли набор правил, определяющих, что вы можете и чего не можете сделать? Я хочу знать все, что нужно делать, и все это не касается присвоений, перед...
задан 17 июля '09 в 16:28
9
ответов

Что такое nullptr?

Теперь у нас есть С++ 11 со многими новыми функциями. Интересным и запутанным (по крайней мере для меня) является новый nullptr. Ну, больше не нужно для неприятного макроса NULL. int* x = nullptr; myclass* obj = nullptr; Тем не менее, я не пони...
задан 15 авг. '09 в 19:47
28
ответов

Каковы препятствия для понимания указателей и что можно сделать для их преодоления?

Почему указатели являются ведущим фактором путаницы для многих новых и даже старых студентов на уровне колледжа на C или С++? Существуют ли какие-либо инструменты или мыслительные процессы, которые помогли вам понять, как указатели работают с перемен...
задан 08 авг. '08 в 9:17
5
ответов

Как передать функцию в качестве параметра в C?

Я хочу создать функцию, которая выполняет функцию, переданную параметром в наборе данных. Как передать функцию в качестве параметра в C?
задан 13 авг. '08 в 5:16
5
ответов

Как использовать массивы на С++?

С++ унаследованные массивы из C, где они используются практически везде. С++ предоставляет абстракции, которые легче использовать и менее подвержены ошибкам (std::vector<T>с С++ 98 и std::array<T, n>, поскольку C++11), поэтому необходимос...
задан 27 янв. '11 в 1:14
11
ответов

C указатель на массив/массив значений указателей

В чем разница между следующими объявлениями: int* arr1[8]; int (*arr2)[8]; int *(arr3[8]); Каково общее правило для понимания более сложных объявлений?
задан 13 мая '09 в 21:35
14
ответов

Сколько уровней указателей у нас есть?

Сколько указателей (*) разрешено в одной переменной? Рассмотрим следующий пример. int a = 10; int *p = &a; Аналогично мы можем иметь int **q = &p; int ***r = &q; и т.д. Например, int ****************zz;
задан 10 апр. '12 в 13:34
6
ответов

Что означает "разыменование" указателя?

Пожалуйста, укажите пример с объяснением.
задан 10 февр. '11 в 12:16
5
ответов

Указатель функции Typedef?

Я изучаю динамическую загрузку DLL, но я не понимаю, что это строка typedef void (*FunctionFunc)(); У меня есть несколько вопросов. Если кто-то сможет ответить на них, я буду благодарен. Почему используется typedef? Синтаксис выглядит нечетным...
задан 28 нояб. '10 в 7:50