其次,数组定义的时候,如果 没有赋初值,那么系统会自动给所有数组元素自动赋值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赋值为5a数组是字符串数组。长度是sizeof(a)=7//包括A,B,C,D,E,F,'\0'。这个'\0'是在编译的时候编译器给加进去。用以限定字符串的边界。
b数组是普通的字符数组。长度是sizeof(b)=6//包括包括A,B,C,D,E,F。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)