一、length()函数

c++中,length()只是用来获取字符串的长度。
例如:string str = “asdfghjkl”
则,str.length() = 9。

二、size()函数

c++中,在获取字符串长度时,size()函数与length()函数作用相同。
除此之外,size()函数还可以获取vector类型的长度。
例如:vector < int> num(15,2)
则,num.size() = 15。

三、sizeof()运算符

sizeof()运算符用来求对象所占内存空间的大小。

3.1 获取基本类型的大小
在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。
(不定义类型的情况下,计算机默认3.14为double类型)

3.2 求取数组所占内存空间大小
Example:

char c[] = "asdsds";
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);

Output:

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

3.3 获取数组长度
Example:

 int array[] = {6,5,4,3,2,1};int length1 = sizeof(array)/sizeof(array[0]);int length2 = sizeof(array)/sizeof(*array);int length3 = sizeof(array)/sizeof(int);cout << length1 << length2 << length3;

Output:

length1 = 6
length2 = 6
length3 = 6

值得一提的是,若将第一行代码改为:int array[10] = {6,5,4,3,2,1};
则,length1、length2、length3的长度都将变为10。
(即未赋值的空余部分仍旧算在内,小伙伴要小心哦!)

length()、size()、sizeof()三者的区别相关推荐

  1. java .size,Java中length,length(),size()详解及区别

    Java中length,length(),size()区别 length属性:用于获取数组长度. eg: int ar[] = new int{1,2,3} /** * 数组用length属性取得长度 ...

  2. 字符串中size()、length()与sizeof()用法及区别

    1.string中的size()和length()计算字符串中真实有意义的字符的长度 字符串的size()函数返回字符串的长度,不包括结束符'\0'; string a = "abcd&qu ...

  3. length,length(),size()详解及区别

    length属性:用于获取数组长度. int ar[] = new int{1,2,3}/** * 数组用length属性取得长度 */int lenAr = ar.length;//此处lenAr= ...

  4. jQuery与JavaScript与ajax三者的区别与联系

    jQuery与JavaScript与ajax三者的区别与联系 简单总结: 1.JS是一门前端语言. 2.Ajax是一门技术,它提供了异步更新的机制,使用客户端与服务器间交换数据而非整个页面文档,实现页 ...

  5. Android 之/storage/sdcard, /sdcard, /mnt/sdcard 三者的区别

    [b]/system 寄存的是rom的信息: /system/app 寄存rom本身附带的件软即系统件软: /system/data 寄存/system/app 中核心系统件软的数据件文信息. /da ...

  6. 我先了解一下博客园创建随笔/文章/日记的过程与三者的区别(隐私等级,是否审核等)...

    我先了解一下博客园创建随笔/文章/日记的过程与三者的区别(隐私等级,是否审核等) 转载于:https://www.cnblogs.com/Totooria-Hyperion/p/5260289.htm ...

  7. 学习数据科学、机器学习与AI没有多大交集,一文告诉你三者最大区别

    翻译 | AI科技大本营 参与 | Shawn 编辑 | Donna [AI科技大本营导读]我们常常提及数据科学.机器学习和人工智能,也有一个整体的概念.但是,如果要清晰地说出三者的定义分别是什么,区 ...

  8. 【C 语言】数组 ( 指针退化验证 | 计算数组大小 | #define LENGTH(array) (sizeof(array) / sizeof(*array)) )

    文章目录 一.指针退化验证 二.完整代码示例 一.指针退化验证 nnn 维数组 作为 函数参数 , 会退化为 指针 , 注意这里只有 最高维 第 nnn 维 会 退化为指针 , 该指针指向 若干 n− ...

  9. C++ 在继承中虚函数、纯虚函数、普通函数,三者的区别

    C++ 在继承中虚函数.纯虚函数.普通函数,三者的区别 1.虚函数(impure virtual) C++的虚函数主要作用是"运行时多态",父类中提供虚函数的实现,为子类提供默认的 ...

  10. 【c++】27.事件驱动、IO复用、sellect、poll、epoll三者的区别

    一.事件驱动的理解: 1.要理解事件驱动和程序,就需要与非事件驱动的程序进行比较.实际上,现代的程序大多是事件驱动的,比如多线程的程序,肯定是事件驱动的.早期则存在许多非事件驱动的程序,这样的程序,在 ...

最新文章

  1. 北大林宙辰:追求机器学习研究的美感
  2. 在windows下如何快速搭建web.py开发框架
  3. kettle中java组件_kettle系列-[KettleUtil]kettle插件,类似kettle的自定义java类控件
  4. 面向空天地一体多接入的融合6G网络架构展望
  5. 支持向量机SVM的学习笔记
  6. 提高开发效率,eclipse的常用快捷键、旁门左道、系统错误小贴士
  7. 【spring实战第五版遇到的坑】3.1中的例子报错
  8. 解决了sql server 用户 sa 登录失败的问题
  9. unexpected indent解决方法
  10. 开机加速与蓝屏stop:0x000000074
  11. TCP/TP OSI7层模型和TCP/TP4层模型
  12. 【点击链接,自动下载安装APP,小米公司的坑】在浏览器中, 我们以为回退就能解决误点击。其实是不管用的。
  13. PMPBOK6之项目管理的33个文件
  14. gdb linux下载,GDB 7.11 发布下载,程序调试利器
  15. Learning Log:输入一个天数,计算天数包含多少周和剩余的天数
  16. 两个游戏认识增强学习
  17. 用Python爬取股票数据,绘制K线和均线并用机器学习预测股价
  18. houdini入门藤曼笔记
  19. Android 如何通过代码安装 APK
  20. 【PYTHON,PPT】1.利用python-PPTX读取ppt内容

热门文章

  1. 最新服务器节点,服务器emule必备知识(更新服务器列表与kad节点文件)
  2. 敏捷实践 | 如何正确使用故事点预估工作量?
  3. 通过时间序列分析预测未来广州的空气质量指数变化
  4. PNG格式的证件照怎么转成JPG格式?教你一招轻松转换
  5. 金属芯PCB中的贵族,热电分离铜基板(高导热380W)
  6. 【微软2017年预科生计划在线编程笔试第二场 B】Diligent Robots
  7. 人民币转换美金的c语言代码大全,JS实现将人民币金额转换为大写的示例代码
  8. ssm 支付宝支付整合
  9. 解决Strokeit在win8下的图标问题和开机启动问题
  10. 同一工作组计算机无法查看,win7系统在同一个工作组看不到其他电脑怎么回事?...