length()
C++中, length()只是用来获取字符串的长度。
例如:
string str = “abcdef”;
str.length() = 6;
size()
C++中,获取字符串的长度时,size()与length()函数作用相同。
除此之外,sizeo()还可以获取vector类型的长度
例如:
vectornum(15,2);
num.size() = 15;
sizeof()
sizeof()运算符用来求对象所占内存空间的大小。
在Windows64系统环境下, 各种基本类型的大小如下:
sizeof(char) = 1
sizeof(int) = 4
sizeof(long) = 8
sizeof(float) = 4
sizeof(double) = 8
sizeof(string) = 28
除此之外,64位编译器下的指针型的长度为8(32位为4),即
sizeof(int*) = sizeof(float*) = sizeof(char*) = 8
常量值以及变量值的长度,等同于其实际类型的长度
sizeof(2) = 4
sizeof(3.14) = 8 //double型
代码测试案例
int main()
{
char c[] = "asdsds";
char* cc = c;
int cn[40] = "asdsds";
int a[] = {1, 2, 3, 4, 5, 6}:
int* aa = a;
cout<<sizeof(c)<<sizeof(cc)<<sizeof(*cc)<<sizeof(cn);
cout<<sizeof(a)<<sizeof(aa)<<sizeof(*aa);
return 0;
}
//输出
sizeof(c) = 7 //c是数组,计算到'\0'位置,结果为6*1 + 1 = 7
sizeof(cc) = 8 //指针类型
sizeof(*cc) = 1 //*cc指向c的第一个字符,大小为1
sizeof(cn) = 40 //开辟40个char空间,大小为40*1 = 40
sizeof(a) = 24; //a是数组,但是不需要计算到'\0',结果为6*4 = 24
sizeof(aa) = 8; //aa为指针类型
sizeof(*aa) = 4; //*aa指向a的第一个数字,大小为4
代码测试案例2
int main()
{
int array[] = {8, 2, 9, 6, 2, 4}:
int length1 = sizeof(array)/sizeof(array[0]);
int length2 = sizeof(array)/sizeof(*array);
int length3 = sizeof(array)/sizeof(int);
cout<<length1<<cout<<length2<<cout<<length3;
return 0;
}
//输出
length1 = 6;
length2 = 6;
length3 = 6;