请考虑以下代码:
const char* text = "hi";
printf("%s\n",text);
printf("%p\n", &text);
printf("%p\n", text);
Run Code Online (Sandbox Code Playgroud)
每个人从哪里printf获取它打印的价值?
有什么区别?
小智 6
所以让我们记住指针是一个内存地址.text是,我怀疑你知道,指向第一个(或第0个,取决于你喜欢怎么想它)一个char数组块的指针.它&是"地址"运算符,它返回内存地址(即指向...的指针).由于文字指针值text本身就是某种数据,因此它必须存储在内存中的某个位置.因此&text返回text存储值的地址.像这样:
