关于数组长度的问题指导一下

img


这23问为什么选C啊,他们用strlen算出来都是7,那长度不应该一样吗,用sizeof算不是算大小吗,数组长度的计算是用sizeof还是strlen,比如int a〔4〕=〔1,2,3〕这个数组,他的长度是16还是12还是3,我麻了,长度是指字节的多少吗

x 这种再内存中最后会有一个不可见字符‘\0’,strlen判断长度是寻找 \0 的位置,找到及返回长度;
数组长度一般使用sizeof

字符串以\0作为结尾
而字符数组则不必
当用字符串对字符数组进行初始化的时候,后面自动跟了个\0

他这里的长度表示的就是个数而已 虽然字符一样 但是第一个是字符串 以\0结尾 所以比第二个多一

"xxx" ==>字符串 字符串是以 '\0'结尾的,
'x' ==> 字符
所以 char x[] ==> 字符串常量
char y []==> 字符数组
strlen是不计入'\0'的长度的
int a[4] 的长度是16