指针,解除引用和引用

时间:2018-02-09 23:39:20

标签: c pointers

我声明了一个像这样的指针:

char *ptr = "hello";

当我这样做时

printf("%p\n", *&*&ptr);  

结果是该指针的地址,但是当我这样做时

printf("%s\n", *&*&ptr);

结果是你好。

有人可以解释原因吗?

1 个答案:

答案 0 :(得分:0)

*&*&ptr是一种奇怪的写作方式ptr(因为*取消了&)。

%p需要一个指针,并打印指针的值(即它指向的地址)。因此,ptr的值是一个有效的输入,您将看到预期的结果。

%s期望指向NUL终止的char值序列,并打印那些char值(但不是NUL)。因此,ptr的值是一个有效的输入,您将看到预期的结果。