鱼C论坛

 找回密码
 立即注册
查看: 4896|回复: 8

自增和自减遇到的问题

[复制链接]
发表于 2013-2-24 00:19:57 | 显示全部楼层 |阅读模式
2鱼币
本帖最后由 我是外星猪 于 2013-2-24 00:39 编辑

编译器VC++6.0(SP6)
语言C
代码如下

问题一
#include <stdio.h>
void main()
{
int j = 5;
printf("%d,%d,%d\n", ++j, ++j, ++j);
}

自加以后再Debug里显示的结果是8,7,6。正常的是否应该是6,7,8 ?是不是因为在内存中存储是从高位到低位所以就显示8.7.6?又或者是因为运算符结合性显示结果自右向左?但是那也不对啊,求指教。

问题二
然后程序这样写
#include <stdio.h>
void main()
{
int i, j = 5;
   
    i=(++j)+(++j)+(++j);
printf("%d\n",i);
}

结果为什么在Debug里显示为22?而不是21?自加应该是6+7+8=21为什么结果变为22

问题三
#include <stdio.h>
void main()
{
int i = 1;
printf("%d\n", -++i);
printf("%d\n", ++i);
}

输出结果是 -2,3
-2是因为运算符的优先级得到的,那么后面的++i为什么不是-2+1=1而是3?这个3是怎么得到的?


望各位前辈指点一下。谢谢了。
另祝大家元宵快乐

最佳答案

查看完整内容

问题一: printf函数的处理机制是自右向左的。而输出是自左向右的,所以输出结果为 8,7,6 是正确的! 问题二; 对于你这样的输入,计算机会先进行优化的,也就是说它会先计算前两个++j,然后再和第三个运算,所以嘛,第一个和第二个++j ==7;第三个++j==8 结果当然为22 啦! 问题三: 第一个输出的是-i++,不是i=-i++,如果是i=-i++的话,第二个输出就是-1了。 回答完毕! 我再给你附上一片可以帮你解惑的文章,下面是链 ...
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-2-24 00:19:58 | 显示全部楼层
问题一:
printf函数的处理机制是自右向左的。而输出是自左向右的,所以输出结果为 8,7,6 是正确的!
问题二;
对于你这样的输入,计算机会先进行优化的,也就是说它会先计算前两个++j,然后再和第三个运算,所以嘛,第一个和第二个++j ==7;第三个++j==8  结果当然为22 啦!
问题三:
第一个输出的是-i++,不是i=-i++,如果是i=-i++的话,第二个输出就是-1了。
回答完毕!
我再给你附上一片可以帮你解惑的文章,下面是链接。
http://c.chinaitlab.com/skill/854535.html
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-2-24 01:15:03 | 显示全部楼层
buhui o ////////////////////////////////////
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-2-24 02:14:57 | 显示全部楼层
楼主的帖子怎么样?赶紧试试这里的快速回复给楼主点评论吧C
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-2-24 02:36:56 | 显示全部楼层
为何要把自己 弄得怎么 lei 呢
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-2-24 02:47:07 | 显示全部楼层
晕晕晕晕晕晕晕晕晕晕晕晕晕晕晕晕
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-2-24 02:48:43 | 显示全部楼层
第3题应该好理解
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-2-24 12:11:12 | 显示全部楼层
感谢回复,问题根据你给出的方法已经解决。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-4-1 22:11:28 | 显示全部楼层
看了中国IT实验室,还是没看明白,一点一点用吧
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-8 02:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表