|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我发现 对于 i++,++i,i--,--i 这类自增自减的问题 有好多人提问
我是想说下其实不用纠结,你写程序的时候完全可以把自增自减写成一个独立的代码 如i
- #include<stdio.h>
- void main()
- {
- int i = 0;
- while(i<50)
- {
- printf("XXX我爱你%d次\n",i);
- i++;//就这样写成一个独立的代
- //码这样的话 i++ = ++i
- }
- }
复制代码 这是完全可以的
如果你一定要弄清楚
对于i++ 和 ++i的区别就不多说了论坛上大牛们都解释了N遍了 比如:
我就说点其他的明明你弄清楚了i++ 和 ++i的区别输出的结果还是不对
1.编译器 是自左向右 还是 自右向左??
也就是说
是先执行++i 还是先执行 i++ 这没标准答案都有可能 所以你的结果可能和书上的和甲鱼的结果不同
还有就是 编译器优化问题请看以下代码
- #include<stdio.h>
- void main()
- {
- int i, j;
- i = 5;
- j = i++ + i++ + i++;
- printf("j = %d\n",j);
- }
复制代码 你们觉得输出结果是多少?? 是不是等于 5 + 6 + 7 = 18??
看下我运行的结果
很奇怪是吧居然是15 为什么??(i = 8了)
我问过我那群里的人他们告诉我是编译器优化的问题 具体我也没搞懂 大概就是先 j = i + i + i 在执行自增命令了(这个问题本菜确实不清楚解释很有可能是错误的)
我是牡丹,我为菜鸟代言!
|
|