C++怎么自右向左运算

发布时间:2024-05-14 19:53 发布:上海旅游网

问题描述:

i=3,比如fun(i,i++)输出什么,自右向左看是不是把i++看成++i
不是说要输出什么,我是想说在算的时候参数代表几,是f(3,3)还是f(3,4)?请讲明白些,谢谢

问题解答:

是:f(3,4)

不是的。
这个合函数的调用约束有关系。
调用约束有三种
__cdecl:参数从右到左。
pascal:参数从左到右。
__stdcall:参数从右到左。
C语言的默认调用约束是采用自右向左压入栈的__cdecl。
根据你的问题:
i=3,fun(i,i++).是说不出会输出什么的。不过我给出如下解释:
上式中,先压入栈i++,再压入栈i.并不是说i++会变成++i。它本身就是一个参数是不会被反过来的。

当然不会,fun(i,i++)和fun(i++,i)都将是两个3进入函数
参数是自右向左读入没错,但是后面的++运算是指在本次操作结束之后才执行+1,也就是参数传值结束后
=====补充:=====
我上面说了啊,都是两个3进入函数,也就是fun(3,3)

热点新闻