首页 > 代码库 > C语言中字符串和字符数组的区别
C语言中字符串和字符数组的区别
字符数组:
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‘,而这并不是程序所希望的,擅自删改内存中的数据,后果可想而知。
本文出自 “积小流成江河” 博客,请务必保留此出处http://laoxiong.blog.51cto.com/5735045/1880959
C语言中字符串和字符数组的区别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。