++i ,i++的妙用
来源:互联网 发布:淘宝不需要保证金 编辑:程序博客网 时间:2024/04/29 18:29
今天遇到这样一个题目:
int x=8,y;
y=(++x)+(x++)+(++x);
printf("%d,%d",x,y);
y的值应该为多少呢?
第一种:x=11,y=30.
第二种:x=11,y=38.
我在windows系统进行编译运行,其结果为x=10,y=30,在Linux系统下进行编译运行,其结果为x=11,y=38。
为什么会出现这种情况呢?
因为windows系统的内部处理方式和Linux系统的处理方式不同,暂且先把第一个++x称为x1,第二个x++
称为x2,第三个++x称x3。在windows系统下x1=9,x2不作处理还是8,x3=10,然后系统把最后一个自增x的值当作各个x++或者++x的值,再进行相加,最后进行x++的自增。因此,x=11,y=30。
在Linux系统中,x1=9,x2使用完再自增,所以不加1,但是Linux系统把x1的值赋给了x2,即x2=9,然后到x3又进行自增变为10,然后进行相加 y=9+9+10=28,运算完成后,再进行x++的自增。所以x=11。
阅读全文
0 0
- ++i ,i++的妙用
- union的0x3个妙用(I)
- i++ ,++i,i=i++的问题
- i++ ,++i,i=i++的问题
- i++;++i;i--;--i 的区别
- ++i,i++,--i和i--的区分
- i++ 、++i 、i-- 、--i 的效率问题
- i++*i++的问题
- i++,++i的困扰
- i++,++i的区别
- i++,++i的区别
- i++ , ++i 的区别
- i++,++i的区别
- i&(-i)的计算
- (i++)+(++i)+(i++),这是个罪恶的语句
- 关于(++i)+(i++)+(++i)的研究
- i += 1; i++; ++i的区别
- I
- Linux进程全解2——进程环境(环境变量、进程运行的虚拟地址空间)
- Redis搭建集群
- JZOJ100041. 【NOIP2017提高A组模拟7.12】列车调度
- 网络集群
- HttpClient获取响应内容类型Content-Type
- ++i ,i++的妙用
- NYOJ44 子串和(DP)
- HTML表格
- The first day
- luogu1941 飞扬的小鸟
- MySQL之——将log4j的日志配置输出到MySQL中
- CSS基础知识之字体、文本
- 包装类
- 物理渲染学习笔记(三)——Cook-Torrance微表面模型