Какое значение содержит сам указатель, как переменная? - C (СИ)
Формулировка задачи:
Здравствуйте, я новичок. Не могу понять никак один момент в указателях. Если *number - это значение в адресе. &number это адрес, где хранится значение, тогда просто number что значит?
И ешо как правильно распечатать все три вида значение? printf("%p %p %d", *number,&number,number);
Решение задачи: «Какое значение содержит сам указатель, как переменная?»
textual
Листинг программы
int a=5;// переменная в которой лежит 5
int* b=&a; // указатель который указывает на адрес в переменной в которой лежит 5, по сути тоже переменная
printf("%d %d %d",
b,// выдаст на экран адрес по которому лежит 5
*b,// выдаст на экран 5,т.е значение по адресу в котором лежит 5, разыменованный указатель
&b// покажет адрес по которой лежит указатель
);
Объяснение кода листинга программы
- Объявляется переменная типа int с именем
aи инициализируется значением 5. - Объявляется указатель типа int с именем
bи инициализируется адресом переменнойa. - Выполняется функция printf, которая выводит на экран значение указателя
b, значение, на которое указывает указательb(переменнуюa) и адрес указателяb. - Значение указателя
bпредставлено в шестнадцатеричной системе счисления. - Значение переменной
aпредставлено в десятичной системе счисления. - Адрес переменной
aпредставлен в шестнадцатеричной системе счисления. - Адрес указателя
bпредставлен в шестнадцатеричной системе счисления.