首页 新闻 会员 周边 捐助

关于C++中cout输出的问题

0
悬赏园豆:20 [已解决问题] 解决于 2015-10-07 14:44
 1 #include<iostream>
 2 
 3 int a = 5;
 4 int fun()
 5 {
 6     a = 10;
 7     return 8;
 8 }
 9 
10 int main()
11 {
12     std::cout << fun()<<' '<< a << std::endl;
13     return 0;
14 }

上述代码的输出结果为什么是8 5??

把第12行改成

 std::cout << a<<' '<< fun() << std::endl;

结果输出就是10 8

把第12行改成

std::cout << fun() << std::endl;
std::cout << a << std::endl;

结果输出就是8 10

hhboboy的主页 hhboboy | 初学一级 | 园豆:183
提问于:2015-10-07 10:13
< >
分享
最佳答案
0

c++函数的参数是从右向左传入的:

std::cout << fun()<<' '<< a << std::endl;首先传人a输出a=5,fun()计算的是8  结果是8,5

std::cout << a<<' '<< fun() << std::endl;首先传人fun()输出8,a变为10了,输出结果为10,8

std::cout << fun() << std::endl; std::cout << a << std::endl;其实就是输出fun()--8,a的值变为10后面输出a-10

结果为8 10,你明白函数的参数传人顺序就明白了,是从右向左

收获园豆:20
稳稳的河 | 老鸟四级 |园豆:4216 | 2015-10-07 11:18

术语:函数参数的入栈顺序为自右向左,你的输出是自左向右的

稳稳的河 | 园豆:4216 (老鸟四级) | 2015-10-07 11:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册