C++ sizeof与strlen
sizeof与strlen的区别
基础知识:
(1)sizeof
<1> sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。
<2> 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。
<3> 由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所占的空间,返回值跟对象、结构、数组所存储的内容没有关系。
<4>具体而言,当参数分别如下时,sizeof返回的值表示的含义如下: 数组——编译时分配的数组空间大小; 指针——存储该指针所用的空间大小(存储该指针的地址的长度,是长整型,应该为4); 类型——该类型所占的空间大小; 对象——对象的实际占用空间大小; 函数——函数的返回类型所占的空间大小。函数的返回类型不能是void。
(2)strlen
<1> strlen(...)是函数,要在运行时才能计算。参数必须是字符型指针(char*)。当数组名作为参数传入时,实际上数组就退化成指针了。
<2>它的功能是:返回字符串实际的长度。该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符NULL。返回的长度大小不包括NULL。
转载于:https://www.cnblogs.com/jianhui-Ethan/p/4692373.html
C++ sizeof与strlen相关推荐
- C语言的sizeof和strlen
strlen是函数,而sizeof是算符.strlen需要进行一次函数调用,而对于sizeof而言,因为缓冲区已经用已知字符串进行了初始化,起长度是固定的,所以sizeof在编译时计算缓冲区的长度. ...
- Sizeof与Strlen的区别与联系(转)
一.sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组.指针.类型.对象.函数等. 它的功能是:获得保证能 ...
- C语言中sizeof与strlen区别
本文转载自:http://www.2cto.com/kf/201109/105100.html 1. 以字符串形式出现的,编译器都会为该字符串自动添加一个0作为结束符,如在代码中写"abc& ...
- sizeof 和strlen的区别
一.本质区别 sizeof和strlen有本质上的区别.sizeof是C语言的一种单目运算符,如++.--等,并不是函数,sizeof的优先级为2级,比/.% 等3级运算符优先级高,sizeof以字节 ...
- C语言中sizeof与strlen的区别总结!
C语言中sizeof与strlen区别总结! 先上一个例子: 结果: 一.sizeof与strlen char c[] = "abc\0cba"; 问题1:sizeof(c) = ...
- Sizeof与Strlen的区别与联系
Sizeof与Strlen的区别与联系(转) 1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型. 该类型保证能容纳实现所建立的最大对象的字节大小 ...
- C语言中,当计算字符数组长度时,用sizeof 和strlen 的原理及两者的区别
字符数组的长度计算:必须以终止符'/0'作为边界,但对字符数组赋值时,有两种方式: 1: 定义时用字符初始化 (1)char chs[7] = {'a', 'c', '0', 'z', '3','d' ...
- [基础|理论|实验]Sizeof与Strlen的区别与联系
1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型. 该类型保证能容纳实现所建立的最大对象的字节大小. 2.sizeof是算符,strlen是函数 ...
- C语言 - sizeof和strlen的区别
sizeof和strlen的区别: 1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型. 该类型保证能容纳实现所建立的最大对象的字节大小. 2.s ...
最新文章
- 开源中国iOS客户端学习——(一)Prefix.pch文件
- python 字符串可以直接连接吗_如何连接字符串。。。在?(Python)
- 基于SmartQQ协议的QQ聊天机器人-7
- 解析IT行业的苦逼工作!(漫画)
- CTF工具(1)--- ARCHPR--含安装/使用过程
- Google引火烧身 还是致命一击
- Module build failed: Error: Missing binding
- node 遍历读取制定后缀文件名
- sqlite C/C++
- 揭秘阿里百亿级云客服实时分析架构是怎么炼成的?
- 8.Nginx 例子
- ad gerber文件生成_Gerber竟然可以倒转PCB文件!!!
- 设置Emeditor为Python的简易开发工具
- [渝粤教育] 西安工业大学 汉语文字学 参考 资料
- 大数据杀熟行为10月1日起明令禁止!
- Graphics画图自定义画笔
- OpenGL地球(自转+贴图)
- Gooowild隐私政策
- Android 开源图片裁剪工具、图片显示工具分享
- Apache Ranger and AWS EMR Automated Installation Series (3): Windows AD + EMR-Native Ranger