Вниз
Скачать: CL | DM;

C++ не могу понять почему верна такая запись int *p=&a;   Найти похожие ветки 

 
michael ©   (2003-09-19 20:56) [0]

Читаю тут одну книгу по C++ и не могу понять почему верна такая запись int *p=&a; (где a переменная типа int, объявленная выше)?
Цитата из книги: Указатель – это не сам объект, а его адрес. Чтобы превратить указатель в объект, применяется оператор *. Если, скажем, p – это указатель на переменную типа int, то *p – сама переменная типа int.

Мой вывод: получается что в инструкции int *p=&a; объекту на который указывает p присваивается адрес переменной a. В книге же написано, что в указатель p засылается адрес переменной a. Почему так???


 
Ketmar ©   (2003-09-19 21:03) [1]

хреново читаем. перечитать то, что касается объявлений.
char *, int * и ты ды -- ОБЪЯВЛЕНИЯ указателя. rtfm, блин...


 
hrundel   (2003-09-22 15:59) [2]

А что что то нетак, разве? Написанно все правильно. Ты читаешь прямо ОБЪЯВЛЕНИЕ переменной. Ну если тебе проще, то можно и так написать.
int *p;
p = &a;
Легче стало??


 
Dimka Maslov ©   (2003-09-22 16:08) [3]

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

int *p - объявление указателя на переменную типа int
= &a - присвоение указателю адреса переменной а

а вот если бы *p стояло в правой части выражения, то это означало бы чтение переменной типа int из адреса, на который указывает

В книге правильно пишут. Просто в указателях C++ и Паскаль различаются сильно.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.012 c
14-27733
wnew
2003-09-19 22:32
2003.10.09
Есть ли связисты на форуме?


1-27472
pum5a
2003-09-26 22:07
2003.10.09
Как создать окно для контрола


4-27762
^^^Dragon^^^
2003-08-05 22:42
2003.10.09
Как отследить запуск другого ПОЛНОЭКРАННОГО приложения?


8-27617
Sergey
2003-05-23 00:31
2003.10.09
Анимация


1-27565
Dark Elf
2003-09-30 15:40
2003.10.09
Изменение курсора




   Наверх