一个奇怪的问题~~~~

enic 2008-05-27 06:30:56
环境XP SP2 ;VC6.0 SP6

#include <stdio.h>
int main(void)
{
int i = 0;

printf("%d %d %d %d %d",i , i++, i, ++i, i);

return 0;
}
运行结果:
1 1 1 1 0

我的问题是i++没有执行吗?预期结果应该是2 2 1 1 0

在线等

...全文
111 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
enic 2008-05-28
  • 打赏
  • 举报
回复
经过C/C++茶馆 帮助,得出结论
杜绝使用这样的语句
N个编译器,N个不同结果!!!!
enic 2008-05-28
  • 打赏
  • 举报
回复
为什么要等printf 完了才执行呢?


前面说过了,不是应为语句的原因。难道是函数吗?
貌似其他函数里边也结果是不同的。
蘑菇摸骨 2008-05-27
  • 打赏
  • 举报
回复
我知道了~!!
printf函数的参数是从右到左的

i++ 是要等到printf函数执行完 才会执行的~ 所以嘿嘿
答案当然就是
1 1 1 1 0
嘿嘿 这个问题居然被我想到了~
嗯结贴也没关系
就是想告诉你一声
顺便和大家分享
蘑菇摸骨 2008-05-27
  • 打赏
  • 举报
回复
嗯 真的 很神奇! LZ怎么会想到这样写?
enic 2008-05-27
  • 打赏
  • 举报
回复
恩就这样吧
独孤过儿 2008-05-27
  • 打赏
  • 举报
回复
靠,无聊不啊?

标准中明确建议,不要这样写代码,可还是...
enic 2008-05-27
  • 打赏
  • 举报
回复
8楼说的有问题,如果说++是以语句为标志执行那么
int i =0;
printf("%d",i\n),i++,printf("%d\n",i);
应该是
0
0

但是测试结果
0
1
enic 2008-05-27
  • 打赏
  • 举报
回复
那为什么这里不是2呢?
参数从右至左,就相当于语句吧?
先i++然后i
i为什么不是2
enic 2008-05-27
  • 打赏
  • 举报
回复
我自己找到原因了```

是printf 函数的

"pintf 函数要截取打印值时,她可能先计算最后一个参数的值,从而再计算其他参数之前的``"__c primer plus

也就是说,printf 的不确定性吧?
以后尽量减少在不是自己定义的函数中使用自加,自减。
zjw6861982 2008-05-27
  • 打赏
  • 举报
回复
本来就是这个结果
printf("%d %d %d %d %d",i , i++, i, ++i, i);
参数从右至左
i++在执行完本语句之后加1;
如果你在后面加一句
printf("%d ",i );
输出2
enic 2008-05-27
  • 打赏
  • 举报
回复
在我机器上运行结果是1 1 1 1 0
crocke 2008-05-27
  • 打赏
  • 举报
回复
怪哉!
zhulinjia 2008-05-27
  • 打赏
  • 举报
回复
结果本来就是2 2 1 1 0
jintianfree 2008-05-27
  • 打赏
  • 举报
回复
up

不懂帮顶
enic 2008-05-27
  • 打赏
  • 举报
回复
它就是1
enic 2008-05-27
  • 打赏
  • 举报
回复
郁闷
andy_cai 2008-05-27
  • 打赏
  • 举报
回复
printf执行后i肯定是2
1、站长是否隐身设置就在站长管理的系统管理里。2、数据库文件是glolbal.asp密码是cklovesnow3、不用进行任何修改因为尝试下在你的数据库的人的D:会自动被格(好像黑暗了点..)4、增加了垂直分屏。5、超级用户:笑傲江湖 密码:1236、这个版本绝对没有任何后门。7、安装时如果安装免虚拟目录修改login.asp里的数据库路径(默认直接可用)如果是虚拟目录就修改global.asa文件的数据库路径(默认直接可用)8、增加了酒店和打猎功能。9、解决了彩票不能用的bug。10、修正了前几个版本的客栈漏洞。11、修正了赌馆的一个小漏洞,稍微对跑马进行修改,解决了富翁排行不统计存款的问题.12、更正了练功的bug,美化了界面。13、增加了聊天室头像(320个),优化聊天室内核速度更快,更改成多聊天室版本,对聊天室的内部框架进行改动,增加了功能菜单和即时滚动新闻.(免费提供的0926里面含有这两个功能)14、对管理进行加密管理密码在GLOBAL.ASA里面用户可以自己设置。(具体情况可以看那个变量后边的注释)对多聊天室的换房部分进行优化,统一运用JAVA代码进行更新,优化了部分代码,速度进一步加快。15、增加了一层管理验证默认管理密码为selsun16、增加了采矿和采冰(引用阿男的部分程序)17、可以设置是否显示头像。站长隐身部分重写。18、增加了钓鱼限制,防止服务器过于繁忙。19、数据库读写方法改进,为数据库0膨胀。20、增加了新保险柜、江湖配药、江湖保险、江湖密探(查看玩家详细资料)、领养小孩、喂养小孩、江湖汽车(好象没有用的~~~~~~)等功能21、增加了会员功能:夫妻客栈、江湖医院22、去除了一些连接错误(就像是在聊天室里的功能菜单的钓鱼,点了就说我是黑客要点50次.....昏)23、补了一些可以刷钱的漏洞(在那里刷我就不说了~~~请原谅~~~是两个地方的)[等待补上]24、加上了数据膨胀和站长管理密探功能的连接~~~~~嘿嘿!25、我准备加一些奇怪的功能~~~~~~~~~不知道如何~~~~~~~~~~26、加了罚款功能!站长管理密码:xajhxp 路径:mmjh/login.asp

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧