#include<stdio.h>
int main() {
char str[]={'1','2','3'},*p;
p=str;
printf("%c",p);
return 0;
}
输出-@。
它不应该打印 1 还是 %c
可能是原因?
最佳答案
要打印指针处的值(即 1,如您所料),您必须取消引用该指针。在你的情况下,
printf("%c",p);
应该是
printf("%c", *p);
FWIW,printf("%c",p);
将调用未定义的行为,因为提供的参数类型将与提供的格式说明符不匹配。
关于c - 无法识别的指针行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33531262/