搜索
首页 教育/科学 数学 包皮正常长度

这怎么理解,数组长度和字符串长度不一样吗

char a[]={‘a’,’b’,’c’}; 数组长度为3,字符串长度不定。sizeof(a)为3。char a[5]={ ‘a’,’b’,’c’} 数组长度为5,字符串长度3。sizeof(a)为5。

全部回答

2018-05-19

6 0
  严格的说,这两个都不是字符串,因为没有结束符只是字符数组第二个就不多说了,程序执行的时候会给a申请5个字节的空间,因为他是定长度的,不管给他赋值了几个字符,即使超过长度,那也只是有溢出危险第一个他是不定长度,没有定义a所占的长度这样的话用了多少就是多少,这个显然用了3个,那么长度就是3了,他不是字符串,没有结束符,要是字符串的话,还要一个结束符的占位,呢就是4注意的是,在声明不定长度数组的时候,一定要赋值,不然他不会占有内存空间,无法进行赋值操作。
  

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

教育/科学
数学
院校信息
升学入学
理工学科
出国/留学
职业教育
人文学科
外语学习
学习帮助
K12
理工学科
数学
农业科学
生物学
建筑学
心理学
天文学
工程技术科学
化学
环境学
地球科学
生态学
物理学
数学
数学
举报
举报原因(必选):
取消确定举报