C语言函数的求值顺序

2024-11-25 04:41:54
推荐回答(5个)
回答1:

当i=2时
i++ 的值还是2
所以
p=f(2,2)
a=2,b=2
if(a==b) c=0 ;
所以最后等于0

回答2:

i++ 是先取值再自增
当调用p=f(i,i++); 时 i=2

即调用P=(2,2)
满足 if(a==b) c=0; 函数返回值为0
即p=0

回答3:

因为 p=f(i,i++); 这句话 第一个 i的值传给了 子函数的第一个函数a 第二个 i++其实是 先把 i的值传给了b 然后 执行 ++的

然后子程序运行到 如果 a==b的时候就结果是真 返回了0给p

回答4:

您好,是这样的;函数在传参时是先传右面的,所以导致结果为0;
如果改为p = f ( ++i, i ); 结果就不同了;请采纳
希望对你能有所帮助。

回答5:

因为i++是在这条语句执行完才执行的,所以会先输入两个参数都是i,然后执行完函数才会变成i+1。
你可以输入++i,这时候结果就不一样了,因为i的加法会先计算,然后将计算结果作为参数传入函数。