В конце концов, оба эти заявления делают то же самое ...Где `% p` полезен с printf?
int a = 10;
int *b = &a;
printf("%p\n",b);
printf("%08X\n",b);
Например (с различными адресами):
0012FEE0
0012FEE0
Тривиально форматировать указатель по желанию с %x
, так есть ли хорошее использование опции %p
?
С помощью '% p' вы печатаете адрес переменной, о которой идет речь, «Указатель указателя void * печатается в шестнадцатеричном виде (как будто на% # x или% # lx)." –
В C++ вы можете использовать (void *) typecast: см. Http://stackoverflow.com/questions/5657123/how-to-simulate-printfs-p-format-when-using-stdcout –