字符串数组长度,字符数组长度问题

char a[] = {'a','b','c'};
char b[] = "abc";
请问下数组a和数组b的长度我理解的是都为3,但是答案是b的长度大于a的长度,
不太明白后面那个是不是要算上\0呢,这个长度是要用strlen计算么

3个回答

任何字符串他都会在字符结尾自动添加上'\0'。因为计算机判定字符串的长度就是看这个'\0'的字符串,所以strlen也是这个原理。
前一楼的兄弟已经说的很明白了,但是要注意一点,因为你现在定义的是char b[],这种方式,这是计算机根据字符串自动计算长度,所以他会分配四个字节,
如果是自己定义数组的长度需要把'\0'加上,不然会有截断,所以应该定义:char b[4] = "abc"

字符串实际长度为4,有\0作为结尾标识,strlen的的值为3,不包括\0

对于字符而言,就是'a','b'等,一个字符的长度为1,
对于字符串而言,就是'abc'而言,因为所有的字符串在结尾都会自动加上‘\0’,所以数组b的长度应该是3+1=4.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐