char *p = "a";
有效但 int *p = 2;
和 char *p = 'a';
为什么要这样设计?
最佳答案
""
中的任何内容在 C.So 中都被视为字符串
char *p = "a"
表示您正在将字符串的基地址传递给 char 指针。这是有效的。
int *p
表示 p
是一个指向整数的指针,所以 p
可以保存一个指向整数的地址,所以 int *p = 2
无效。
类似地,char *p
是指向字符的指针,所以 p
可以保存字符的地址,所以 char *p = 'a'
不是有效,因为 'a'
只是一个字符,而不是字符地址。
关于c - 指针初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17429605/