立即学习:https://edu.youkuaiyun.com/course/play/8088/176522?utm_source=blogtoedu
1. 字符串表现形式
char mystr1[] = "I love China!";
char mystr2[] = "I love China!";
printf("%s\n",mystr1);
printf("%s\n",mystr2);
char *p1 = "I love China!";
char *p2 = "I love China!";
如上程序调试时发现:使用字符数组定义的两个"I love China!"具有不同的地址,而两个指针却具有相同的地址
原因:
I Love China是字符串常量,C语言中对字符串常量有特殊的处理:在内存中会开辟出一段类似字符数组的东西来存放字符串常量。那char *p1 = "I Love China!";这行相当于把内存中这个字符串常量的首地址赋给了指针pmystr1导致p1指向该字符串常量