1、字符串常量
字符串常量是由双引号,引起的一串字符。
系统在字符串常量最后添加一个字符'\0'。
故字符串大小会比实际字面量要多一个,包括'\0'。
字符串长度用strlen,不包括'\0'。
字符串存储在数据段,且是只读数据段。
2、C语言是如何处理常量字符串的?
①将其处理一个指向data段这段字符串的首地址。
②C语言将常量字符串,处理为一个指向数据段中一段字符串的字符指针或理解为常量字符数组。
对比数组,三要素,起始地址,步长,范围
//char* 能不能代表了整个字符串?可以代表整个字符串。 起始地址:将其处理一个指向data段这段字符串的首地址。步长:char。范围:'\0'
char *p = "china";
printf("p = %p p+1 = %p p[0] = %c 2[p] = %c\n", p, p+1, p[0], 2[p]);
printf(" = %p +1 = %p = %c = %c\n", "china", "china"+1, "china"