sizeof既是关键字,又是运算符(操作符),但不是函数!
2015-12-20 12:39
239 查看
▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
= sizeof(int);这样的式子,就很容易让人误以为sizeof是一个函数呢。
但如果sizeof是函数,那么sizeof i;(假设i为int变量)这种式子一定不能成立,因为函数的参数不可能不用括号括起来。事实上这个sizeof i;可以正常运行,这就说明sizeof绝对不是函数。
sizeof后面的括号可以去掉吗?如果是具体的量,无论常量还是变量,都可以直接写 sizeof 量,但如果是对类型进行运算,则必须加括号:
运行结果:
注意上图出现的异常情况,这说明:sizeof面对直接量比如'A'、65等时,会将其默认转换为int类型计算,如果需要计算char或者short的直接常量大小,需要强制转换。
▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
sizeof是关键字吗
sizeof是关键字,这一点毋庸置疑。你不能将sizeof定义为任何标识符。查看C语言标准文档里的说明:sizeof是运算符(操作符)吗
C语言中,sizeof是运算符(操作符),而且是唯一一个以单词形式出现的运算符,它用来计算存放某一个量需要占用多少字节,它的结合性是从右到左。查看C语言标准文档里的说明:sizeof是函数吗
sizeof不是函数。产生这样的疑问主要是因为有时候sizeof的外在表现确实有点类似函数,比如:i= sizeof(int);这样的式子,就很容易让人误以为sizeof是一个函数呢。
但如果sizeof是函数,那么sizeof i;(假设i为int变量)这种式子一定不能成立,因为函数的参数不可能不用括号括起来。事实上这个sizeof i;可以正常运行,这就说明sizeof绝对不是函数。
sizeof用法
sizeof顶着关键字的光环,发挥着运算符的作用。它主要用来计算某一个量在当前系统中所需占用的字节数:sizeof后面的括号可以去掉吗?如果是具体的量,无论常量还是变量,都可以直接写 sizeof 量,但如果是对类型进行运算,则必须加括号:
运行结果:
注意上图出现的异常情况,这说明:sizeof面对直接量比如'A'、65等时,会将其默认转换为int类型计算,如果需要计算char或者short的直接常量大小,需要强制转换。
小结
对语法存疑时,其发布的标准文档是最具说服力的解释文件。▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
相关文章推荐
- js获取父子兄弟节点
- [uwp]MVVM之MVVMLight,一个登录注销过程的简单模拟
- Educational Codeforces Round 3 E (609E) Minimum spanning tree for each edge
- python____Django实战(1)
- android 图片浏览器 demo
- 驱动,包括很多软件,并不是最新的就是最好的
- 软件打不开,或者软件打开的时候出错,很多时候可以通过以管理员的方式运行来解决
- 视频图像传输与显示(3)——复合视频信号CVBS解析
- 设置Label的行间距
- 使用docker笔记
- 键盘记录器
- Yocto tips (6): Yocto中如何共享已经下载的文件
- uAVS2 AVS2实时编码器
- 黑马程序员--C语言自学笔记---09排序、查找、迷宫、字符串
- bzoj4012: [HNOI2015]开店
- 这个选项决定pe中能不能看见系统盘
- my-innodb-heavy-注释
- Find使用详解
- cdlinux可以安装在c盘
- android-textview设置字体的行距和字间距