温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C语言中字符串和字符数组的区别

发布时间:2020-07-13 15:39:09 来源:网络 阅读:568 作者:plan1230 栏目:编程语言

字符数组:

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',而这并不是程序所希望的,擅自删改内存中的数据,后果可想而知。


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI