Михаил Кириллов
Михаил Кириллов | Репутация: 201 (Кандидат) 24 июля 2008 в 16:49
Долгое время не могу понять одну тему в языке С/С++, а именно - указатели. Подскажите простой пример для их понимания?
Александр Карцев
Александр Карцев | Репутация: 196 (Кандидат) 24 июля 2008 в 18:33

Запросто!
int d = 7;int *p = &d;std::cout << "Address: " << p << "; Value: " << *p << std::endl;*p = 8; std::cout << "Address: " << p << "; Value: " << *p << std::endl;d = 9; std::cout << "Address: " << p << "; Value: " << *p << std::endl;

Александр Соколан
Александр Соколан | Репутация: 103 (Кандидат) 24 июля 2008 в 20:07

Указатель на переменную  - ячейка памяти, в которой хранится адрес другой ячейки памяти, в которой собственно и содержится переменная

Виталий Пак
Виталий Пак | Репутация: 102 (Кандидат) 24 июля 2008 в 23:13

Указатель - это переменная, содержащая адрес ячейки памяти, в которой храниться какие либо данные. Для обычных переменные типа int или float можно легко задавать и изменять значение. Если допустим две переменные a и b имеют следдующее значение:
int a = 6;
int b = a;
a = 9;
cout<<b;
в результате получишь 6, тогда как переменная а = 9. Это потому, что переменные a и b размещены в разных ячейках памяти. А если же:
int *a = 6;
int *b = a;
*a = 9;
cout<<*b;
результат будет 9, т.к. обе переменные указывают на значение, расположенное в одной и той же адресной ячейке.
Указатели используются при работе с объектами классов.