【发布时间】:2019-12-14 06:49:27
【问题描述】:
这段代码有问题,
int main()
{
char *p = "example";
printf("%s\n", *&p); This is giving desired output
printf("%s\n", *p); Here giving segmentation fault
return 0;
}
我的问题是这里的 *&p 和 *p 有什么区别以及它们在这段代码中是如何工作的?
【问题讨论】:
-
%s需要一个指向字符串的指针。*p是单个字符,因此是段错误。&p是一个指向指针的指针,在使用*运算符取消引用后,您将返回原始指针。
标签: c pointers printf operators