C语言中字符串和字符数组的区别
2016-12-08 22:46
405 查看
字符数组:
char a[2]={'a','b','c'};
char a[]={'a','b','c'};
字符串:
char a[3]={“abc”};
char a[3]="abc"; //此处可以省略大括号
char a[]="abc"; // 与char a[3]={'a','b','c','\0'}; 相同
红字表明的地方为什么要变成3呢,因为字符串赋值给数组后,在最后会默认增加一个字符“\0”,多占用一个字符,如果定义的数组空间不够,可能引起存储错误,更改系统内存中其它数据,导致严重后果,如:
char a[2]="abc";
a[0]='a',
a[1]='b',
a[2]='c',
(a+3)指向地址空间被赋值为'\0',而这并不是程序所希望的,擅自删改内存中的数据,后果可想而知。
char a[2]={'a','b','c'};
char a[]={'a','b','c'};
字符串:
char a[3]={“abc”};
char a[3]="abc"; //此处可以省略大括号
char a[]="abc"; // 与char a[3]={'a','b','c','\0'}; 相同
红字表明的地方为什么要变成3呢,因为字符串赋值给数组后,在最后会默认增加一个字符“\0”,多占用一个字符,如果定义的数组空间不够,可能引起存储错误,更改系统内存中其它数据,导致严重后果,如:
char a[2]="abc";
a[0]='a',
a[1]='b',
a[2]='c',
(a+3)指向地址空间被赋值为'\0',而这并不是程序所希望的,擅自删改内存中的数据,后果可想而知。
相关文章推荐
- c语言指针字符串与字符数组字符串的区别
- C语言字符串指针与字符数组的区别
- C语言和Java字符串与字符数组区别
- C语言字符串指针变量与字符数组的区别
- C语言中字符串和字符数组的区别
- C语言字符串指针变量与字符数组的区别
- 字符串指针与字符数组的区别
- C语言中字符数组和字符串指针分析
- 字符串和字符数组的区别
- C语言中字符数组和字符串指针分析
- C语言读取多行字符串,并存入字符数组中
- C语言中字符数组和字符串指针分析
- C中字符串和字符数组的区别
- 认真学习下字符串和字符数组的区别!
- 使用字符串指针变量与字符数组的区别
- 函数内 声明一个字符数组和一个指向字符串数组的指针 区别
- 字符与字符串(字符数组)的输入区别
- C语言中字符数组和字符串指针分析
- c语言中的字符数组与字符串
- 【转】c语言中的字符数组与字符串