谁能帮我解释一下这题C语言的答案以及答案怎么来的

#include<stdio.h>voidfunc(inta,intb,intc){printf("a=%d,b=%d,c=%d\n",a,b,c);}voidmain(... #include<stdio.h>
void func(int a,int b,int c)
{
printf("a=%d,b=%d,c=%d\n",a,b,c);
}
void main()
{
int i=2;
func(i,i++,i--);
}
如果再将i++,i--换成++i,--i,又会怎么样...程序可以运行,但是答案我不懂怎么来的
什么问题,不会是我的VC软件有问题吧……如果方便的话帮我运行一下
展开
 我来答
tdfzq
2014-09-15 · TA获得超过839个赞
知道小有建树答主
回答量:771
采纳率:75%
帮助的人:196万
展开全部
答案是2,2,3 如果是++i,--i,就是2,3,2

这是优先级的问题,++i,--i,先运算才取数;所以是2,3,2

而i++,i--是先取数,所以是2 2,3
更多追问追答
追问
第一个没错,我运算的结果是222,但是换过来后是221,我想问这事关函数参数的运算顺序吧?
追答
嗯,和运算顺序有关,i=2  a=2   b=i++=2; i=3,c=i--=3

和运算顺序有关,i=2 a=2 b=++i=3; i=3,c=--i=3-1=2,你的结果是222和221 ,你上机试一下就知道结果了
AlanZhansky
2014-09-15
知道答主
回答量:13
采纳率:0%
帮助的人:11.3万
展开全部
i++,i--;是先调用i的值;然后在加1减1;而++i,--i是先自增1/自减1;然后调用i的值。。
更多追问追答
追问
这个我知道,我是看到书上说的函数参数运算顺序给出的答案和我自己在电脑上运行的不一样
追答
这和printf 的输出方式有关,printf 是从右往左输出的,当输出项各项之间有联系时,会对结果产生影响。。第2种按重右往左的话就可以理解
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式