C中没有字符串(有序字符的集合)的概念:
c中通过特殊的字符数组模拟字符串
c中的字符串是以‘\0’结尾的字符数组
C中,双引号引用的单个或多个字符是一种特殊的字面量:
存储于程序的全局只读存储区中
本质为字符数组,编译器自动在结尾加上'\0'字符
char b = "abc"[0]; char c = *("123" + 1); char t = *""; printf("%c\n", b);------->a printf("%c\n", c);------->2 printf("%d\n", t);------->0
字符串字面量本质是一个数组,可以看做常量指针,字符不可改变,至少包含一个字符
字符串的长度就是字符串所包含字符的个数
字符串长度指的是第一个'\0'字符前出现字符的个数,用strlen来返回字符串的长度
char s[] = "Hello\0world"; int i = 0; for(i=0; i<sizeof(s)/sizeof(char); i++) { printf("%c\n", s[i]); }------>Helloaworlda printf("%s\n", s);----->Hello printf( "%d\n", strlen(s) );---->5 printf( "%d\n", strlen("123") );----->3