btcq.net
当前位置:首页 >> C语言如何得到数组长度 >>

C语言如何得到数组长度

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

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

纯数组的长度是不可能获得的,c语言没有这样的机制,你可以在结构体里面加上一个变量表示data数组中元素的个数,在add函数(或者类似的)操作这个元素个数,增加了data元素就加1,否则减1,或者置为空,希望能帮到你

使用sizeof的方法的前提是使用的是数组名,你这里的形参a,本质是一个指针,无法实现,只能再添加一个参数作为数组长度

1、c语言中,定义数组后可以用sizeof命令获得数组的长度(即可容纳元素个数).但是通过传递数组名参数到子函数中,以获得数组长度是不可行的,因为在子函数当中,数组名会退化为一个指针.2、例如:int data[4],length; length=sizeof(data)/sizeof(data[0]); //数组占内存总空间除以单个元素占内存空间大小,即等于元素个数 printf("length of data[4]=%d", length ); //输出length of data[4]=4

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

sizeof(数组名)/sizeof(类型) 如 char sk[10] sizeof(sk)/sizeof(char)

方法:使用sizeof(array) / sizeof(array[0]), 在C语言中习惯上,在使用时都把它定义成一个宏.比如2113#define GET_ARRAY_LEN(array,len) {len = (sizeof(array) / sizeof(array[0]));} .而在C++中则可以使用模板技术定义一个函5261数.比如:

使用sizeof操作符可以计算任何类型数组的长度.使用方法:sizeof(a)/sizeof(a[0]); //其中a是数组名.原理就是,用整个数组的字节数除以一个元素的字节数,结果就是数组的长度.sizeof判断数据类型长度符的关键字 用法 sizeof(类型说明符,数组名或表达式)或sizeof 变量名 定义 sizeof是C/C++中的一个操作符(operator),简单的说其作用就是返回一个对象或者类型所占的内存字节数.

在C语言中习惯上在 使用时都把它定义成一个宏,比如#define GET_ARRAY_LEN(array,len) {len = (sizeof(array) / sizeof(array[0]));}.而在C++中则可以使用模板技术定义一个函数,比如:template <classTintgetArrayLen(T& array){return(sizeof(

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