求数组长度的方法
c++求长度的方法很局限吧,我目前只知道
int a[10];
int length = sizeof(a)/sizeof(a[0]);
cout << length;
坑呀坑!
写二分查找的时候,发现这样一个问题,把一个数组的地址传入内部,然后求它的长度和外部的不一样。
直到我写出下面的程序后就恍然大悟
#include <iostream>
using namespace std;
void other(int a[]);
int main(){
int a[4] = {1,2,3,4};
cout << "内部的a:" << sizeof(a)<<endl;
cout << "内部的a[0]:" << sizeof(a[0])<<endl;
cout << "外部的:" << sizeof(a)/sizeof(a[0])<<endl;
other(a);
}
void other(int a[]){
cout << "内部的a:" << sizeof(a)<<endl;
cout << "内部的a[0]:" << sizeof(a[0])<<endl;
cout << "内部的:" << sizeof(a)/sizeof(a[0]);
}
原来在内部对a求大小就是,求的就是指针大小。
外部的是对整个数组求大小。
字符串长度
一般我们使用字符串的方法来求长度
cout << s1.size();
cout << s1.length();