对于一个C++的初学者,在如何求解数组长度问题上可能会稍有混乱,因为求解长度的方法有很多,比如size()、length()、sizeof()等函数,今天我就和大家一起学习如何求解数组长度,并探讨size()、length()、sizeof()这三个函数的用法与区别。
首先解答如何求解数组长度这个问题,大家应当使用sizeof()函数。sizeof()函数的功能是确定数据类型或变量在内存中所占的字节数。举个例子:
#include<iostream>
#include<cstddef>
using namespace std;
int main(void) {
int a[5] = { 1,2,3,4,5 };
cout << "int类型的字节数为:" << sizeof(int) << endl;
cout << "数组a的总字节数为:" << sizeof(a) << endl;
cout << "数组a中每一个元素占字节数为:" << sizeof(a[0]) << endl;
cout << "数组a的长度为:" << sizeof(a)/ sizeof(a[0]) << endl; //求解数组a的长度
}
运行后得到的结果是:
?可以看到,使用sizeof(a)/ sizeof(a[0])的方法就可以求出数组的长度。
size()函数可以求解字符串长度以及vector类型的长度,但是不可以求解数组的长度。举个例子:
#include<iostream>
#include<vector>
using namespace std;
int main(void) {
vector<int>b;
string str = "abcabc";
for (int i = 0; i < 10; i++) {
b.push_back(i);
}
cout << "b的长度为:" << b.size() << endl; //求解b的长度
cout << "str的长度为:" << str.size() << endl; //求解str的长度
}
结果如下:
?可以看到使用size()函数可以轻松求解出字符串长度以及vector类型的长度,但是若对数组使用size()函数,将会报错,大家可以自行尝试,我就不做演示了。
length()函数只用于求解字符串长度,举个例子:
#include<iostream>
using namespace std;
int main(void) {
string str = "abcabc";
cout << "str的长度为:" << str.length() << endl; //求解str的长度
}
若将string修改为数组,将会报错,如下图所示: