C语言 打印输出指针与取消引用指针之间的差异



这有什么区别:

int num = 5;
int* num1 = #
printf("%p", num1);

而这个:

int num = 5;
int* num1 = #
printf("%p", &num1);

在第一种情况下,printf("%p", num1);,您正在打印num1的值,这是num的地址。

在第二种情况下,printf("%p", &num1);,您正在打印num1的地址。

第一段代码打印num1的内容,其中包含num地址。 第二块打印num1本身的地址

两者都在打印一个地址,每个地址都是两个不同的对象。

%pprintf 格式说明符需要与void *兼容的参数,因此如有必要,您应该强制转换相应的参数。

对于第一种情况:

int num = 5;
int* num1 = #
printf("%p", (void *)num1);

打印num变量的地址,因为num1指向num

对于第二种情况:

int num = 5;
int* num1 = #
printf("%p", (void *)&num1);

打印num1变量的地址。

最新更新