关闭

sizeof(++i+ ++i)

222人阅读 评论(0) 收藏 举报
 #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,j=4 
 解答::
 根据C99规范, sizeof是一个编译时刻就起效果的运算符,在其内的任何运算都没有意义, j = sizeof(++i+++i); 在编译的时候被翻译成 j=sizeof((++i+++i的数据类型)) 也就是 j = sizeof(int); 也就是 j= 4; (32bit系统,如果是16位系统,则j=2) 然后才会继续编译成最终的程序,当然在最终程序执行的时候,自然不会执行任何++i了。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:109027次
    • 积分:1323
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:103篇
    • 译文:1篇
    • 评论:9条
    最新评论