考虑以下代码:
const char* text = "hi";
printf("%s\n",text);
printf("%p\n", &text);
printf("%p\n", text);
每个 printf
从哪里获取它打印的值?
有什么区别?
最佳答案
所以让我们记住指针是内存地址。 text
是,我想您知道,是指向 char 数组的第一个(或第 0 个,取决于您如何看待它) block 的指针。 &
是“地址”运算符,它返回内存地址(即指向...的指针),无论其后是什么。由于 text
的文字指针值本身就是某种数据,因此它必须存储在内存中的某个位置。所以 &text
返回存储 text
值的地址。像这样:
关于c - 在 C99 中打印带和不带 & 的指针之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40833557/