为什么返回0语句没有传递零值?

时间:2015-12-11 14:49:54

标签: c++ function return-value

我刚刚开始学习C ++,在习惯了数据类型之后,我正在学习程序中的函数和变量。但是,我无法真正遵循return语句的目的。

我的大学课程的幻灯片说如果调用者不是函数,则return语句会将控制权返回给操作系统。但是我不明白将程序控制返回给调用者的确切含义是什么。这是否意味着CPU中的控制器指示执行以下指令?他们还说它通过了值0.这是什么意思?我尝试执行程序时没有看到任何这样的返回值。

请解释将程序控制返回给调用者是什么意思,以及为什么在执行return语句时没有传递返回值?

2 个答案:

答案 0 :(得分:2)

函数中的语句按照它们所述的顺序逐个执行。当一个语句是函数调用时,控制权被赋予被调用函数,并且该函数中的语句被处理直到函数结束,然后控制返回到原始函数,即调用者。

return语句可用于立即跳转回调用者而无需处理函数中的任何其他语句。根据函数是否应该返回一个值,您可以(并且必须)指定返回值。

从一个函数到另一个函数以及从语句到下一个函数的跳转序列称为控制流。机器一次最多只能处理一个语句,并且具有当前语句的功能可以控制。当然这是简单的,但我认为这种简化适合你的问题。

答案 1 :(得分:2)

main的返回值实际上不是返回值。它被称为"exit status",它会转到运行程序的程序。这样做的目的是,如果某人正在使用您的程序以及其他几个程序,您可以告诉他们出现了问题,他们应该停止他们正在做的事情。

关于正常功能的返回值,它们可能会涵盖您正在学习的课程的后期。不幸的是,对这些问题的一个很好的解释超出了这个答案的范围。