鱼C论坛

 找回密码
 立即注册
查看: 4407|回复: 7

输出顺序搞不懂、、

[复制链接]
发表于 2012-10-29 09:33:27 | 显示全部楼层 |阅读模式
5鱼币
  1. #include <iostream>

  2. int function(int a)
  3. {
  4. int functionival = a;
  5. std::cout << "function:" << functionival << '\n' << std::endl;
  6. return functionival;
  7. }

  8. int main()
  9. {
  10. int mainival = 2 , a =9;
  11. for(int i = 1; i < 4; ++i)
  12. {
  13. std::cout << "main:" << mainival
  14.                << " " << function(a) << std::endl;
  15. }

  16. return 0;
  17. }
复制代码
运行结果:
function: 9

main: 2  9
function: 9

main: 2  9
function: 9


main: 2  9


两个问题:
1、function函数怎么在main函数前先运行了?
2、假设第一个问题成立,那么个人理解输出顺序应该是:
function: 9

main: 2  function: 9

9
main: 2  function: 9

9
main: 2  function: 9

9

求开导、、、、、、、、、、、、、、、、、、

最佳答案

查看完整内容

个人觉得从main()函数进入,但是调用function()函数,根据压栈原理,执行完function()函数才执行main()函数。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-10-29 09:33:28 | 显示全部楼层
个人觉得从main()函数进入,但是调用function()函数,根据压栈原理,执行完function()函数才执行main()函数。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-10-29 21:09:32 | 显示全部楼层
等待高手      
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-10-29 22:33:08 | 显示全部楼层
看了一下汇编程序就是那样的。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-10-30 09:21:58 | 显示全部楼层
  1. 15.std::cout << "main:" << mainival

  2. 16.               << " " << function(a) << std::endl;
复制代码
但,如果是从main()进入,那么顺序执行,在还没调用function函数前应该先执行std::cout << "main:"、、、、、、、、、
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-10-30 14:47:06 | 显示全部楼层
我也不明白
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-10-30 21:50:01 | 显示全部楼层
但,如果是从main()进入,那么顺序执行,在还没调用function函数前应该先执行std::cout << "main:"、、、、、、、、、

C语言中是以语句为基本单位的,只有一条语句结束后,才执行该语句。所以上面认为是不对的,我们在单步调试的时候,比如I=5,只有到该语句的下一句,I才赋值为5.{:1_1:}

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-10-31 19:14:33 | 显示全部楼层
朗朗 发表于 2012-10-30 21:50
但,如果是从main()进入,那么顺序执行,在还没调用function函数前应该先执行std::cout

有道理,呵呵
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-16 00:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表