Я не понимаю, в чем главное различие между %p
, %u
, %x
, %d
, за исключением того, что %x
показывает шестнадцатеричное, %u
используется для целого числа без знака и что %d
являетсядля любого целого числа.Я очень запутался после того, как я взял целочисленную переменную и напечатал ее адрес и ее значение (положительное целое число) отдельно, а затем независимо от того, какой спецификатор формата я использую, он правильно печатал выходные данные (за исключением разницы в шестнадцатеричной и десятичной системе счисления).).Так в чем же основное отличие?
И если нет большой разницы, то какие спецификаторы формата предпочтительнее для печати, какой тип переменных?
Еще одно сомнение заключается в следующем: является ли указатель всей кратности (Я имею в виду int *p;
int **p;
int ***p;
и т. Д.) Занимают тот же размер (какой размер необходим для хранения действительного адреса в аппарате)?Если нет, то каков размер этих указателей?
Спасибо за вашу помощь.