在C语言中,把用一对双撇号所括起来的0个或多个字符序列成为字符串常数。字符串并不存放在一个变量中,而是存放在一个字符型数组中。
1. char a[] = "123" 和 char b [] ={'1','2','3'}的区别:
sizeof(a)=4 sizeof(b)=3
2. char s[] = "abc";和char* s = "abc";的区别:
前"abc"储存在内存区域中的栈中,内容可以更改。(字符串变量)
后者"abc"储存在内存区域中的常量数据区,内容不可更改;(字符串常量)
存在常量区的内容会缓存起来,下次遇到相同的常量就不会开辟新的存储空间。
例:char *s1 = “abc”; char *s2 = “abc”;
则s1==s2 (指向相同的地址)
3. ‘ ’ 的ASCII码是0
char a[] =”123”; 等价于 char a[] = {‘1’ ,‘2’ , ‘3’ , 0 };
4. ‘ ’ 的作用:
char name[] = “it”;
char name2[] = { ‘o’ , ‘k’ };
printf(“%s”,name2); //输出为:okit。原因是printf 从name2[0]开始输出字符直到遇到