码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2016-12-09 10:53:36      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:字符串   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/1880948

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

标签:字符串   c语言   程序   空间   

原文地址:http://laoxiong.blog.51cto.com/5735045/1880948

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!