C语言中字符串末尾有一个结束符 \0, 占一个位置,所以在以字符数组表示字符串时,其的实际长度为声明长度 - 1,所以在使用过程中要注意数组越界。
1 #include <stdio.h> 2 #include <string.h> 3 4 int main() 5 { 6 char name[8] = "itcasasa"; //error C2117: ‘itcasasa‘ : array bounds overflow 7 char name2[] = {‘o‘, ‘k‘}; 8 printf("%s\n", name); 9 10 return 0; 11 }
使用 strlen 计算字符串的长度是他的实际长度,即除去 \0 后的长度。
#include <stdio.h> #include <string.h> int main() { char str[] = "123\0"; printf("%d\n", strlen(str)); //输出 3 return 0; }
在使用字符数组表示字符串时一定要加结束符 \0 , 不然会得到意想不到的结果。
字符串在内存中的存储是 顺序存储的,并且是从大端开始寻址,字符串的输出是遇到结束符后停止输出。
时间: 2024-12-25 00:51:45