问一个关于指针的小问题
程序代码:
#include <stdio.h> #include <string.h> int main() { char str[100]="I love programming"; char *p; p="I hate programming"; puts(p); printf("%d,%d,",sizeof(p),sizeof(str)); printf("%d,%d,",sizeof(*p),sizeof(*str)); printf("%d,%d",strlen(p),strlen(str)); return 0; }
如题 第六行和第七行,*p是个字符,怎么到输出的时候就成了字符串了?本来我以为p只能读个I,是不是说p是"I hate programming"这个字符串的地址?这样的话定义的时候为什么不定义成 char *p[] ?