c语言中数组长度问题int mes[7]={1,1,0,1,0,0,0} 它的长度是多?char mes[7]={1,1,0,1,0,0,0}; 它的呢?貌似它读取到第一个0就结束了,我运行查看的长度是2?为什么呢?我想依次调用里面所有的元素,how?

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/22 18:35:19
c语言中数组长度问题intmes[7]={1,1,0,1,0,0,0}它的长度是多?charmes[7]={1,1,0,1,0,0,0};它的呢?貌似它读取到第一个0就结束了,我运行查看的长度是2?为

c语言中数组长度问题int mes[7]={1,1,0,1,0,0,0} 它的长度是多?char mes[7]={1,1,0,1,0,0,0}; 它的呢?貌似它读取到第一个0就结束了,我运行查看的长度是2?为什么呢?我想依次调用里面所有的元素,how?
c语言中数组长度问题
int mes[7]={1,1,0,1,0,0,0} 它的长度是多?
char mes[7]={1,1,0,1,0,0,0}; 它的呢?貌似它读取到第一个0就结束了,我运行查看的长度是2?为什么呢?我想依次调用里面所有的元素,how?

c语言中数组长度问题int mes[7]={1,1,0,1,0,0,0} 它的长度是多?char mes[7]={1,1,0,1,0,0,0}; 它的呢?貌似它读取到第一个0就结束了,我运行查看的长度是2?为什么呢?我想依次调用里面所有的元素,how?
你的两个数组的长度都是 80.如果不是动态开辟的数组,你声明的时候给多少长度就是多少长度.
第二个数组的长度是2?估计你使用 strlen 函数求吧?strlen只能求字符串长度,没办法求数组长度.strlen 是用 '\0' 来判断字符串的结束标志的,而你第二个数组中放置了几个'\0' (ASCII码为0,),所以得到的长度是 2.将第二个数组改为char m[80]={'1','1','0','1','0','0','0'}; 用 strlen 求得结果为 7.
求数组长度的正确方法:
sizeof(mes)/sizeof(int);
sizeof(mes)/sizeof(char)