社区
C语言
帖子详情
一个奇怪的问题~~~~
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
在线等
...全文
154
17
打赏
收藏
一个奇怪的问题~~~~
环境XP SP2 ;VC6.0 SP6 #include 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 在线等
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
PL/SQL传参中
一个
很
奇怪
的
一个
问题
刚用PL/SQL, 今天碰到
一个
很
奇怪
的
问题
,实在百思不得其解。 不知道什么原因引起的。
问题
如下: ---------------------------------------------------------------------------- 1) 我在shell脚本中使用sqlplus 调用SQL文件, 向这个SQL文件传递了
一个
参数 ===== File : mysh
一个
奇怪
的sql server profiler
问题
今天无意中遇到
一个
奇怪
的sql server profiler
问题
,但之后又莫名其妙地好了,记录一下,等以后有时间再详细分析。 错误已经无法重现了,但是和下面这个帖子里面的错误信息是一样的。 http://kenj.blogspot.sg/2011/04/passing-word.html 这就是错误信息,很
奇怪
吧。 -- 'Ӈ耇' was found in the text of t
遇到
一个
奇怪
的
问题
,关于laydate()初始化的
问题
前端东西不熟,出了
问题
搞不定了。本来是想做个记录解决日志的东西,如图:在每添加一行的时候时间插件框初始化一次第
一个
没
问题
,后来添加的每一行,都会自动跳出时间让选择,第一时间没选择,点了其它地方,第二次就选择不了了。第一行随时可以选择时间,第二行已经不能选择了,只能在增加一行的时候第一时间选择时间。情况是这么个情况,代码如下: //解决日志 function solveLog(id) { ...
一个
awk的
奇怪
问题
操作 系统: centos8, 乌班图8.0, centos7.9, kali2022。这是我朋友的centos 版本, 和我本地centos7 版本也一样。我尝试 了centos7.9, kali, 乌班图8.0 都一样。他那边是正常的,我怀疑是 我的xshell 字符集有关。所以这是
一个
很
奇怪
的
问题
,没有解决。如果 先打印第二列,再打印第一列,则会出现占位。如果按照顺序,第一列 ,第二列显示,则会正常,我特意去云服务器的控制台试了试,也是一样的。随后,我让我朋友 试了试。
一个
很
奇怪
的
问题
遇到了
一个
很
奇怪
的
问题
: unsigned char ptrData[9]={0x02,0x11,0x04,0x03,0x25,0x07,0x01,0x00,0x43} //方法1 unsigned int sCod=0; ...
C语言
70,038
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章