sizeof
来源:互联网 发布:反淘宝联盟事件 编辑:程序博客网 时间:2024/05/16 09:58
转自http://blog.sina.com.cn/s/blog_4762d6850100y1kl.html
#include <stdio.h>int main(char *argv[], int *argc){ int i=3; int j; j = sizeof(++i+ ++i); printf("i=%d j=%d", i ,j);}上述程序,为什么打印出来的i=3呢, 我理解的是5
解答::
根据C99规范, sizeof是一个编译时刻就起效果的运算符,在其内的任何运算都没有意义, j = sizeof(++i+++i); 在编译的时候被翻译成 j=sizeof((++i+++i的数据类型)) 也就是 j = sizeof(int); 也就是 j= 4; (32bit系统,如果是16位系统,则j=2) 然后才会继续编译成最终的程序,当然在最终程序执行的时候,自然不会执行任何++i了。
0 0
- SIZEOF
- Sizeof
- sizeof
- sizeof
- sizeof
- sizeof
- sizeof
- sizeof............
- sizeof
- sizeof
- sizeof
- sizeof
- sizeof
- sizeof
- sizeof
- sizeof
- sizeof
- sizeof
- 有无直方图,性能的差距
- 七大经典排序(中)
- 青春代码
- 软考历程(1)——操作系统
- 第八周 项目一复数类的运算符重载(3)
- sizeof
- IOS开发之——如何引入外部项目
- Oracle表分区
- brk/sbrk
- js或者jquery判断图片是否加载完成
- 动态单链表的实现
- iOS 高级内存管理:比较__unsafe_unretain、__strong、__weak、__autoreleasing
- 板级设备初始化
- NYOJ 88 汉诺塔(一)