求助,怎么计算数组长度

求助,怎么计算数组长度,第1张

首先,cin>>a[20]; 这样是不行的。这样写相当于只输入数组的第21个数,超出了数组的最大范围了。20个数据的数组,最大下标是19
其次,数组定义的时候,如果 没有赋初值,那么系统会自动给所有数组元素自动赋值0
再次,想要求数组长度可以这样:
int a[20];
int len;
len = sizeof(a);
这样求出来的值会是80,因为int数据占4字节,20个就是80字节
数组的长度和你是否输入数组的值无关,反正定义时没给初值就自动赋值0的
只要是int型的数组,每个元素都是4字节。

数组大小就是指数组存储数据的个数,也可以说是数组长度。
数组简介:
数组是一组具有相同类型和名称的变量的集合。这些变量称为数组的元素,每个数组元素都有一个编号,这个编号叫做下标,我们可以通过下标来区别这些元素。数组元素的个数有时也称之为数组的长度。一般情况下,数组的元素类型必须相同,可以是前面讲过的各种基本数据类型。但当数组类型被指定为变体型时,它的各个元素就可以是不同的类型。数组和变量一样,也是有作用域的,按作用域的不同可以把数组分为:过程级数组(或称为局部数组)、模块级数组以及全局数组。C++数组长度 以及sizeof(), size(), length(), strlen()
c++中没有求数组长度的默认函数,只能自己写,但经常有初学者把sizeof(), size(), length(), strlen() 混淆掉。本篇博文具体解释一下如何求数组长度和这四个函数,以及可能遇到的问题。
C++求数组长度为:
int arr_length = sizeof(arr) / sizeof(arr[0]);
为了方便使用,在C语言中常定义宏来求数组长度
#define ARR_LEN(array, length){ length = sizeof(array) / sizeof(array[0]); }
使用时,直接调用宏函数即可,如
int arr[]={1,2,3,4,5};
int len;
ARR_LEN(arr, len); //此时len赋值为5
在C++中,也可以定义模板函数
template <class T>
int getArrayLen(T &array){
return sizeof(array) / sizeof(array[0]);
}
使用时,调用模板函数,如
string arr[]={"abc", "ab", "abcde", "1234567", "890"};
int len=getArrayLen(arr); //此时len赋值为5

a数组是字符串数组。长度是sizeof(a)=7//包括A,B,C,D,E,F,'\0'。这个'\0'是在编译的时候编译器给加进去。用以限定字符串的边界。
b数组是普通的字符数组。长度是sizeof(b)=6//包括包括A,B,C,D,E,F。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10414299.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-08
下一篇 2023-05-08

发表评论

登录后才能评论

评论列表(0条)

保存