return函数(既然C语言函数的局部变量会被释放,那为什么函数还可以把它return返回呢)
本文目录
- 既然C语言函数的局部变量会被释放,那为什么函数还可以把它return返回呢
- C++自定义的函数中return返回的是什么返回值又给了main函数中的谁
- 这里return用法是什么,返回到哪里
- C语言中return要返回到哪里
- 请问return返回到哪里
- 函数的返回值到底返回到哪然后执行什么步骤比如第26行和28行都有return,分别返回到哪里
- 函数中return的作用
既然C语言函数的局部变量会被释放,那为什么函数还可以把它return返回呢
看了底下兄弟的答复,只能说答对了一半。
真正的原因在于ABI(应用程序二进制接口)。
ABI定义了与系统交互的细节:如数据类型、大小和对齐;调用约定(控制函数的参数的传递方向、可变长度处理、堆栈清理主体以及如何接受返回值等);系统调用的编码和一个应用如何向操作系统进行系统调用;以及在一个完整的操作系统ABI中,目标文件的二进制格式、程序库等等。一个完整的ABI,像Intel二进制兼容标准 (iBCS),允许支持它的操作系统上的程序不经修改在其他支持此ABI的操作体统上运行。
其他的 ABI 标准化细节还包括 C++ 名称修饰 ,和同一个平台上的编译器之间的调用约定,但是不包括跨平台的兼容性。
至于底下兄弟所说的EAX保存返回值,这个只是X86的ABI规范,在PowerPC等其他CPU架构平台,实现是不一样的!——PowerPC下,返回值是保存在R3寄存器中的
C++自定义的函数中return返回的是什么返回值又给了main函数中的谁
自定义函数return返回的是是这个函数执行的结果。
举个例子,你要去打篮球,然后你准备练习投篮 ,有个人专门给你拿篮球来让你投篮。这个投篮的动作你定义成main函数
main(){
篮球=拿篮球();
投篮(篮球);
return 0;
}
拿蓝球(){
找到篮球;
return 篮球;
}
自定义了一个拿篮球的函数,也就是别人帮你拿篮球。别人帮你拿到篮球把篮球给你这个动作就是这个函数return了你要的篮球,并且你拿到了自己手里(篮球=拿篮球())。
这里return用法是什么,返回到哪里
这里return的作用,是结束even函数的运行,返回调用它的主函数中继续运行。
因为even是一个void函数,即无返回值的函数,它也可以不用return语句,可以用break代替这个return。因为break有中止和退出循环语句的作用,所以,碰到break语句后,也中止了for的运行,而后面该函数也没有其它语句了,自动返回主函数中去了。
C语言中return要返回到哪里
递归就是一个函数调用该函数本身。。。。
但必须要有终止条件。。。。。
举上楼的例子:
wetl(int n)
{
if(n!=0) return wetl(n-1);
else
return n;
}
假若n=2;
n!=0
执行 wetl(n-1),也就是welt(1);//要清楚此时还未跳出wetl(2){。。。。。}这个函数,它处于等待之中;
1!=0;
执行 wetl(n-1),也就是welt(0);//要清楚此时还未跳出wetl(1){。。。。。}这个函数,它处于等待之中;
0=0;则执行return n;
此时要返回上一层 去完成welt(1);
完成welt(1);后返回上层 去完成welt(2);
完成welt(2);后返回上层 去完成welt(3);
此时回到了初始状态,结束
好好想想假若一个函数A里有两个其它函数B C,如果仅执行了B函数,那么A函数就算执行完了吗???还有B都未执行完可以直接跳到C函数吗???所以必须去执行完B函数,等B完成后,跳出B函数去完成C函数,A函数才算完成。
递归就是把上面的B函数换成A函数,即A函数里有两个函数A C,然后去执行
请问return返回到哪里
return将某一状态返回到调用其所在函数的地方
有点绕口,举个例子把
例:
int fun() {
……
if(IO_allocFUB.status != 0) /* allocation ok ? */
{
return X;
}
……
}
main() {
int a;
a=fun(); //return 将X返回到了这里,把X赋给a
}
函数的返回值到底返回到哪然后执行什么步骤比如第26行和28行都有return,分别返回到哪里
首先:函数的返回值只有一个,但是一个函数可以有多条RETURN语句;return语句 代表的是函数的执行返回情况,返回到调用它的函数中。
在这个例子中,searchlist()函数需要给主函数返回一个int型的结果(如果查找到数据,则return i,返回查找的数据在list[ ]中的下标;如果没有查找到相应的数据,则return -1 ;)。主函数定义一个int型的变量result来接受searchlight[ ]函数的返回结果,根据result的值进行下面的运算。这里,return 的值只有两种情况:第一种就是查找的数据在数组中的下标,第二中就是-1代表数组中没有要查找的数据。
函数中return的作用
return表示把程序流程从被调函数转向主调函数并把表达式的值带回主调函数,实现函数值的返回,返回时可附带一个返回值,由return后面的参数指定。
return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。如果函数执行不需要返回计算结果,也需要返回一个状态码表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。
扩展资料:
在函数中,如果碰到return语句,那么程序就会返回调用该函数的下一条语句执行,也就是说跳出函数的执行,回到原的地方继续执行下去。但是如果是在主函数中碰到return语句,那么整个程序就会停止,退出程序的执行。
函数的返回值是由返回语句return实现的,函数执行的最后一个操作就是返回,返回的意义是:
(1)子程序函数返回主调函数,宣告函数的一次执行结束,在调用期间所分配的变量单元被撤消;
(2)送函数值到调用表达式中,当然这一点并不是必需的,因为有些函数有返回值,有些函数没有返回值。
本文相关文章:
mysql存储过程查询赋值(mysql 存储过程 局部变量赋值给where 查询无结果 数据库有值)
2024年7月21日 06:12
javascript声明变量(JS代码中如何使用局部变量和全局变量)
2024年7月1日 05:06
更多文章:
app测试和web测试区别(WEB测试与APP测试有哪些异同)
2024年7月21日 14:18
textbooks是什么意思(textbook prounce是什么意思)
2024年7月4日 17:16
易语言破解版编译几次就不能用了(易语言 点击静态编译就停止工作怎么办)
2024年9月27日 20:50
winform第三方控件(winform 怎么使用 第三方控件)
2024年7月22日 02:57
format函数头文件(c++怎样格式化输出数字,求教如题 谢谢了)
2024年8月7日 16:20
cpu编程语言(计算机里的CPU可以直接运行人类编写的程序吗为什么说编程语言不是和计算机交)
2024年7月22日 04:24
contexts(修复selinux contexts是什么意思)
2024年7月30日 07:26
数据库工程师和软件工程师哪个好(软件设计师,数据库系统工程师 和网络工程师哪个更好)
2024年7月31日 08:25
brochure是什么意思(印刷中 24pp 4/4 brochure 是什么意思)
2024年7月24日 03:32
assertequals java(请问Java中有两个String,如何从其中一个String删除另一个String中包含的内容)
2024年7月24日 07:07
json集合格式(一个java对象内包含一个对象集合 用json-lib框架怎么转换成JSON数据格式)
2024年9月27日 09:45
html弹窗广告制作(网页出现付费预测彩票的弹窗广告,应当怎样做)
2024年7月11日 16:22