указатели с



Автор Єирсов Михаил задал вопрос в разделе Другие языки и технологии

Указатели С++ и получил лучший ответ

Ответ от Борис Большем[эксперт]
Указатель в С++ — это переменная, которая хранит адрес другой переменной в памяти. Поскольку сам указатель является переменной, у него тоже есть адрес, что позволяет создавать указатели на указатели. Обычный указатель объявляется с одной звездочкой и может ссылаться на одну структуру или на массив структур, где первый элемент будет под индексом ноль. Двойной указатель, обозначаемый двумя звездочками, используется, когда нужно передать в функцию адрес самого указателя, чтобы изменить его внутри функции, или при работе с двумерными массивами и массивами указателей. В примере со структурой Node двойной указатель в функции позволяет изменить исходный указатель из главной программы, а не его локальную копию. Для глубокого изучения темы часто рекомендуют книгу Джеффа Элджера С++ Библиотека программиста, где подробно разбирается работа с памятью.

Ответ от Александр Воронцов[гуру]
Требует ссылку на указатель вроде
так компилится
struct Node{
int d;
Node *next;
Node *prev;
};
void add(Node **pend, int d){}
int main()
{
Node *p;
p = new Node();
add(&p,6);
}
вот что генерируется а asm код
// для наглядности ...если маил не испортит листинг:
.file"2.cpp"
.intel_syntax noprefix
.text
.globl _Z3addPP4Nodei
.type_Z3addPP4Nodei, @function
_Z3addPP4Nodei:
.LFB0:
.cfi_startproc
pushebp
.cfi_def_cfa_offset 8
movebp, esp
.cfi_offset 5, -8
.cfi_def_cfa_register 5
popebp
.cfi_restore 5
.cfi_def_cfa 5, 4
ret
.cfi_endproc
.LFE0:
.size_Z3addPP4Nodei, .-_Z3addPP4Nodei
.globl main
.typemain, @function
main:
.LFB1:
.cfi_startproc
pushebp
.cfi_def_cfa_offset 8
movebp, esp
.cfi_offset 5, -8
.cfi_def_cfa_register 5
andesp, -16
subesp, 32
movDWORD PTR [esp], 12
call_Znwj
movedx, eax
moveax, edx
movDWORD PTR [eax], 0
movDWORD PTR [eax+4], 0
movDWORD PTR [eax+8], 0
moveax, edx
movDWORD PTR [esp+28], eax
movDWORD PTR [esp+4], 6
leaeax, [esp+28]
movDWORD PTR [esp], eax
call_Z3addPP4Nodei
moveax, 0
leave
.cfi_restore 5
.cfi_def_cfa 4, 4
ret
.cfi_endproc
.LFE1:
.sizemain, .-main
.ident"GCC: (Gentoo 4.5.3-r1 p1.0, pie-0.4.5) 4.5.3"
.section.note.GNU-stack,"",@progbits

Ответ от Ўрий-17[гуру]
** Указатель на массив указателей
Может и больше быть
Если хотите практически почти всё знать об указателях, есть книга Джеффа Элджера С++ Библиотека программиста, окунётесь в Мир указателей и узнаете много нового!

Ответ от Xraux[гуру]
** - указатель на указатель. Три - указатель на указатель на указатель, и так далее. Указатель - это тоже переменная, и естественно, что можно получить ее адрес. Конкретно в этом примере использование ** - совершенно лишнее (если это, конечно, не массив) . Вызов этой функции может быть таким:
Node* n = new Node(); // указатель на структуру
// ...
add(&n, 1);

Ответ от Николай Веселуха[гуру]
Двойной указатель, используется при передачи в функцию (метод) двумерного массива, может быть и многомерный **** для четырёхмерного массива.
Ну а уж каким боком, вы, там у себя в коде, хотите это пристроить - дело ваше.
В данном случае вы пытаетесь передать в функцию двумерный массив типа Node, хотя указатели в структуре предполагают использование двунаправленного связанного списка.

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Указатели С++

в языке python есть указатели ?
Python – язык динамической типизации. Мы не объявляем переменные как в других языках, а присваиваем
подробнее...

да зачем нужны эти указатели ?? C++. Зачем нужны указатели? почему не обойтись без простой переменной??
Указатель содержит адрес первого байта объекта в памяти, тип указателя, говорит о том сколько
подробнее...
метки: Общество Трасса
Вдоль дороги на Подмосковных трассах стоят указатели километров, откуда их считают, от МКАД или от центра Москвы?
Указатели километров стоят не только на подмосковных трассах, а по всей стране. Счет идет от
подробнее...

Чем указатели лучше переменных?
Указатели — это переменные, хранящие не сами данные, а адреса ячеек памяти. Сравнивать их с
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:
метки: Структура
C++ указатели на структуры
strcpy()

Надо понимать, что name - это адрес

ЗЫЖ Структуры в данном случае - не
подробнее...

Сигнализация KGB VS 5000. При снятии и поставке на охрану не срабатывают указатели поворота.
да тъ тут не причем, в самой сигналке нет диодов, поетому ставяться дополнительнъе на поворотники,
подробнее...

Указатели С++
Указатель в С++ — это переменная, которая хранит адрес другой переменной в памяти. Поскольку сам
подробнее...

Для чего на некоторых авто стоят указатели температуры масла?
По температуре масла опытный водитель, не обязательно механик, может определить как хорошо или
подробнее...
метки: Конец Списки
C++. Указатели. Связный список. Как добавить элемент в конец списка? Вопрос для разбирающихся
Ваш next, последнего элемента в списке указывает на NULL, а новый элемент списка вы создаёте по
подробнее...

3D max Пропали указатели осей при редактировании подобъектов
Если в 3D Max при редактировании подобъектов пропали указатели осей, сначала убедитесь, что выбран
подробнее...
метки: STW
С++ / интеллектуалььные указатели / std::unique_ptr
unique_ptr<double[]> apa_ptr(new double(6));

Создаст массив только с одним
подробнее...

Какие слова указатели в английском времени Present Perfect?
since, yet, just, already, never, ever, recently, this is the first time (second time),
подробнее...
Указатель тип данных на Википедии
Посмотрите статью на википедии про Указатель тип данных
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*