Указатель , указывающий на тип , не имеет ничего общего с указателем значения, которое вы хотите напечатать. Если вы хотите напечатать указатель значения как число (например, адрес, по которому это значение хранится в & memory), вы должны сначала преобразовать этот указатель в целое число, чтобы вы могли использовать метод печати чисел. Это делается внутри функции printf(3)
, когда вы указываете значение указателя (независимо от того, на какой тип он указывает) в формате с указателем формата %p
.
#include<stdio.h>
int main()
{
int a=5;
printf("The address of a is: %p\n", &a);
printf("and the value of a is: %d\n", a);
return 0;
}
При выполнении вы ' получу что-то похожее на это:
$ pru
The address of a is: 0x7fffffffe3bc
and the value of a is: 5
$ _