C++|C++ length()、size()、sizeof()三者的区别
一、length()函数
c++中,length()只是用来获取字符串的长度。
例如:string str = “asdfghjkl”二、size()函数 c++中,在获取字符串长度时,size()函数与length()函数作用相同。
则,str.length() = 9。
除此之外,size()函数还可以获取vector类型的长度。
例如:vector < int> num(15,2)
则,num.size() = 15。
例如:string str = "d1da";三、sizeof()运算符 sizeof()运算符用来求对象所占内存空间的大小。
则, cout<
char c[] = "asdsds";需要注意的是,如果不使用Vector作为数组进行参数传递,那么在传递数组引用是需要再传递一个数组的大小,否则在函数中无法根据首地址计算出数组大小。
char* cc = c;
char 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);
结果输出:
sizeof(c) = 7 //c是数组,计算到'\0'位置,结果为6 * 1+1=7
sizeof(cc) = 8 //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为指针类型,大小为8
sizeof(*aa) = 4 //*aa指向a的第一个数字,大小为4
四、CPP、java、python获取数组长度的方法 1、CPP
- 获取字符数组的大小(只能用于获取字符数组长度)
#include注意:获取字符数组长度时,使用strlen(a)和下面将要介绍的sizeof(a) / sizeof(a[0]) 得到的结果略有差别,sizeof(a) / sizeof(a[0]) 会把char数组的
cout<
'\0'
也算入在内。所以得到的大小会比strlen得到的大一。例如:char a [] = "dadada";
cout<
- 万能方法
sizeof(a) / sizeof(a[0]) 或者 sizeof(a) / sizeof(* a)2、Java 注意,java获取数组长度时,length并不是一个方法
a.length3、Python
【C++|C++ length()、size()、sizeof()三者的区别】len(a)
推荐阅读
- 一个人的碎碎念
- 野营记-第五章|野营记-第五章 讨伐梦魇兽
- Shell-Bash变量与运算符
- 清明,是追思、是传承、是感恩。
- 牛人进化+|牛人进化+ 按自己的意愿过一生
- 七老修复好敏感、角质层薄、红血丝
- 华为旁!大社区、地铁新盘,佳兆业城市广场五期!
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- 螃蟹和这些食物同吃,轻则腹泻、重则中毒!要小心哦~
- 八、「料理风云」