btcq.net
当前位置:首页 >> C语言中怎么获取数组长度 >>

C语言中怎么获取数组长度

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

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

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

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

比如 int a[10];int len = sizeof(a)/sizeof(a[0]);

收藏 C、C++中没有提供 直接获取数组长度的函数,对于存放字符串的字符数组提供了一个strlen函数获取长度,那么对于其他类型的数组如何获取他们的长度呢?其中一种方法是使 用sizeof(array) / sizeof(array[0]), 在C语言中习惯上在 使用时

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

以下是两个Demo程序,一个C语言的,一个C++的:P.S:若数组为存储 字符串的字符数组,则所求得的长度还需要减一,即对于宏定义: #define GET_ARRAY_LEN(array,len) {len = (sizeof(array) / sizeof(array[0]) - 1 );} ,对于函数定义:

你的两个数组的长度都是 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(s)获得的值确实只能是该数组类型的大小.但是如果在定义数组的地方使用sizeof(s),得到的则是该数组所占内存空间的大小.然后通过计算sizeof(s)/sizeof(char)得到的就是数组长度

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