sizeif(i++).sizeof(++i) 的问题
2015-09-08 16:56
316 查看
考虑以下代码:
对上述代码,输出的结果为 : 3
原因:根据C99规范, sizeof是一个编译时刻就起效果的运算符,在其内的任何运算都没有意义, k= sizeof(i++); 在编译的时候被翻译成 j=sizeof((i++的数据类型)) 也就是 j = sizeof(int); 也就是 j= 4; (32bit系统,如果是16位系统,则j=2) 然后才会继续编译成最终的程序,当然在最终程序执行的时候,自然不会执行任何++i 或 i++ 了。
[code]int i = 3; int j = sizeof(++i); int k = sizeof(i++); cout << i << endl;
对上述代码,输出的结果为 : 3
原因:根据C99规范, sizeof是一个编译时刻就起效果的运算符,在其内的任何运算都没有意义, k= sizeof(i++); 在编译的时候被翻译成 j=sizeof((i++的数据类型)) 也就是 j = sizeof(int); 也就是 j= 4; (32bit系统,如果是16位系统,则j=2) 然后才会继续编译成最终的程序,当然在最终程序执行的时候,自然不会执行任何++i 或 i++ 了。
相关文章推荐
- C++ 之 虚函数、虚基类与纯虚函数 浅析
- pull解析xml文件
- Matlab和C语言混合编程,包含目录的设定
- exchange 2010 新建角色实操记录
- ORM基本概念及ORM中的映射关系
- Mac 安装 Ant
- spring中的注解
- 线上系统架构设计 之 【文件系统同步篇】
- 用fiddler2模拟2G,3G环境下的网络环境
- 大附件上传配置文件
- Binary Tree Postorder Traversal
- Freemarker自定义方法
- poj 1017
- Cannot create JDBC driver of class '' for connect URL 'null'
- Mac添加命令别名
- Android 百度地图 SDK v3.0.0 (二) 定位与结合方向传感器
- jquery动态移除/增加onclick属性详解
- [Bootstrap]7天深入Bootstrap(2)整体架构
- 织梦系统与discuz论坛整合方法
- 笔记-大话设计模式-13 建造者模式