jmfs.net
当前位置:首页>>关于c语言如何判断数组长度的资料>>

c语言如何判断数组长度

'\0' 只是字符串数组的结束符,对于其它类型数组没有所谓的结束符!判断数组长度,可以使用sizeof来进行,如 int ARRAY[] = {1,1,2,2,}; printf("长度: %d\n", sizeof(ARRAY) / sizeof(int)); 你可以看看长度到底是多少?并可以了解为什么是这个数,在其它编译器上也运行看看.没有给定长度的,它通过你初始化的数据来设定长度,上面你只使用4个初始化数据,因而长度为4.

楼主,分两种情况:1.一个字符数组 char num[100] 如果你不知道存了几个的话,你可以用strlen(num)来取得2.一个整型数组 如果你不知道存了几个的话,你可以这么做 比如 int num[100]={-100}; 然后用for循环判断有多少个数不等于-100,就可以变相统计存了多少个数了3.strlen()函数只能用于求字符串的长度,不能用于求int数组

c语言中,定义数组后可以用sizeof命令获得数组的长度(可容纳元素个数) 如:{ int data[4]; int length; length=sizeof(data)/sizeof(data[0]); //数组占内存总空间,除以单个元素占内存空间大小 printf("length of data[4]=%d", length ); //输出

可以用for循环一个一个往后移动指针 可以看看strlen的源码实现,就两代码

数组长度都是用静态量设定的,也就是说编译阶段就确定了.int a[10]; printf("%d", sizeof(a)/sizeof(int));这就能知道长度

你的两个数组的长度都是 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)

比如获取一个int类型数组的长度:int example[20]; int arrlength; arrlength = sizeof(example) / sizeof(int);这样就行了.

数组的长度必须在编译时就要知道 也就是说数组的长度是你自己指定的 当然如果是动态数组,你就需要记录数组的个数

比如: int a[15] ;那就是 sizeof(a) 测出a的字节长度 , sizeof(int)测出int的长度,然后sizeof(a)/sizeof(int) 就是数组长度

乱说 如果是那个字符串就直接用strlen(a)就可以求出a的长度了 如果是数据组的话就可以用飘逝的海天的方法

ndxg.net | jtlm.net | alloyfurniture.com | ncry.net | snrg.net | 网站首页 | 网站地图
All rights reserved Powered by www.jmfs.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com