return函数(既然C语言函数的局部变量会被释放,那为什么函数还可以把它return返回呢)

2023-08-30 23:40:03 62

return函数(既然C语言函数的局部变量会被释放,那为什么函数还可以把它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)送函数值到调用表达式中,当然这一点并不是必需的,因为有些函数有返回值,有些函数没有返回值。


return函数(既然C语言函数的局部变量会被释放,那为什么函数还可以把它return返回呢)

本文编辑:admin

本文相关文章:


mysql存储过程查询赋值(mysql 存储过程 局部变量赋值给where 查询无结果 数据库有值)

mysql存储过程查询赋值(mysql 存储过程 局部变量赋值给where 查询无结果 数据库有值)

本文目录mysql 存储过程 局部变量赋值给where 查询无结果 数据库有值mysql 存储过程怎么赋值MYSQL 如何给在存储过程中给时间变量赋值,详细看补充mysql 查询结果把一个字段的值赋值给另一个字段的键值mysql 存储过程

2024年7月21日 06:12

全局变量和局部变量区别(和利时全局变量和局部变量的区别)

全局变量和局部变量区别(和利时全局变量和局部变量的区别)

本文目录和利时全局变量和局部变量的区别全局变量和局部变量的本质区别c语言中局部变量和全局变量的区别是什么局部变量和全局变量的区别全局变量和 局部变量的区别C语言,全局变量和局部变量有什么区别全局变量和局部变量有什么区别是怎么实现的和利时全局

2024年7月20日 15:07

javascript声明变量(JS代码中如何使用局部变量和全局变量)

javascript声明变量(JS代码中如何使用局部变量和全局变量)

本文目录JS代码中如何使用局部变量和全局变量大家在写JS的时候,习惯在哪里声明变量JS代码中如何使用局部变量和全局变量局部变量是在函数内声明的,全局变量是在模块内声明的,可以举个简单的例子var a = 10;声明一个全局变量a等于10,我

2024年7月1日 05:06

更多文章:


网站设计的原则(试述网站设计的原则)

网站设计的原则(试述网站设计的原则)

本文目录试述网站设计的原则网站界面设计应遵循的几个原则网页设计应遵循什么原则试述网站设计的原则【答案】:1)明确网站设计的目的与用户需求2)网站总体设计方案主题鲜明3)网站版式设计应结构清晰4)网页色彩效果应简洁明快5)网页的形式与内容应相

2024年7月8日 01:18

app测试和web测试区别(WEB测试与APP测试有哪些异同)

app测试和web测试区别(WEB测试与APP测试有哪些异同)

本文目录WEB测试与APP测试有哪些异同请问各位大侠,Web测试和App测试有什么区别APP测试和pc端测试的区别(app测试和web端测试有什么区别)web测试招聘多还是app测试多移动测试和Web测试有什么区别ios测试和web端测试的

2024年7月21日 14:18

textbooks是什么意思(textbook prounce是什么意思)

textbooks是什么意思(textbook prounce是什么意思)

本文目录textbook prounce是什么意思ibooks textbooks什么意思textbook prounce是什么意思你好,高兴为你回答。请采纳,谢谢!!textbook 的意思是: 课本,教材prounce是个错误的英语单

2024年7月4日 17:16

驽马十驾的驽什么意思(驽是什么意思)

驽马十驾的驽什么意思(驽是什么意思)

本文目录驽是什么意思驽的意思驽马十驾的介绍驽马十驾的驽意思驽_的意思驽_的意思是什么驽马十驾是什么意思_驽的意思_驽的意思是什么相如虽驽的驽字是什么意思驽_的解释驽_的解释是什么驽是什么意思驽nú基本字义1. 劣马,走不快的马:~骀(“骀”

2024年6月6日 23:11

易语言破解版编译几次就不能用了(易语言 点击静态编译就停止工作怎么办)

易语言破解版编译几次就不能用了(易语言 点击静态编译就停止工作怎么办)

大家好,今天小编来为大家解答以下的问题,关于易语言破解版编译几次就不能用了,易语言 点击静态编译就停止工作怎么办这个很多人还不知道,现在让我们一起来看看吧!本文目录易语言 点击静态编译就停止工作怎么办易语言编译后失效易语言怎么做这个软件只能

2024年9月27日 20:50

winform第三方控件(winform 怎么使用 第三方控件)

winform第三方控件(winform 怎么使用 第三方控件)

本文目录winform 怎么使用 第三方控件winform项目中如何去使用已有第三方控件C# Winform 公司内部系统使用第三方控件是否侵权c#Winform有能支持IE,Firefox,Chrome,Safari浏览器的控件吗用C#在

2024年7月22日 02:57

format函数头文件(c++怎样格式化输出数字,求教如题 谢谢了)

format函数头文件(c++怎样格式化输出数字,求教如题 谢谢了)

其实format函数头文件的问题并不复杂,但是又很多的朋友都不太了解c++怎样格式化输出数字,求教如题 谢谢了,因此呢,今天小编就来为大家分享format函数头文件的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录

2024年8月7日 16:20

基本英语单词1000个(英语常用动词1000个)

基本英语单词1000个(英语常用动词1000个)

本篇文章给大家谈谈基本英语单词1000个,以及英语常用动词1000个对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录英语常用动词1000个求

2024年8月4日 12:15

网上课程哪个平台比较好(现在哪一个网络教育平台最好)

网上课程哪个平台比较好(现在哪一个网络教育平台最好)

本文目录现在哪一个网络教育平台最好小学网课平台哪个好学而思、新东方、猿辅导、天天练、小学宝、纳米盒子网课哪个平台比较好线上授课平台选哪个比较好我想在网上教学,哪个网上教学平台好现在哪一个网络教育平台最好网上教育平台好的标准:一、师资力量;二

2024年2月2日 04:40

cpu编程语言(计算机里的CPU可以直接运行人类编写的程序吗为什么说编程语言不是和计算机交)

cpu编程语言(计算机里的CPU可以直接运行人类编写的程序吗为什么说编程语言不是和计算机交)

本文目录计算机里的CPU可以直接运行人类编写的程序吗为什么说编程语言不是和计算机交cpu可以直接运行汇编语言么cpu可以直接理解什么类型程序设计语言CPU 指令集和编程语言有关么、cpu能直接理解的语言是什么cpu是不是对外提供了编程接口这

2024年7月22日 04:24

绝命后卫师演员表?绝命后卫师傅作仁原型

绝命后卫师演员表?绝命后卫师傅作仁原型

本文目录绝命后卫师演员表绝命后卫师傅作仁原型绝命后卫师演员表介绍绝命后卫师苏达清的历史原型是谁绝命后卫师剧情介绍绝命后卫师大结局 绝命后卫师大结局如何绝命后卫师陈树湘的原型是谁 陈树湘的结局是什么绝命后卫师彭竹峰历史原型是谁 最终又是如何死

2024年6月2日 08:41

静态网页访问速度快吗(静态网页打开页面快还是动态网页快)

静态网页访问速度快吗(静态网页打开页面快还是动态网页快)

本文目录静态网页打开页面快还是动态网页快为什么动态页面访问非常慢,而静态页面访问非常快网站信息设计成静态页面好还是动态页面好,两种页面分别更适用于什么情况谢了!做网站静态的好还是动态的好静态网页打开页面快还是动态网页快静态的快些,静态和动态

2024年7月23日 10:44

contexts(修复selinux contexts是什么意思)

contexts(修复selinux contexts是什么意思)

大家好,如果您还对contexts不太了解,没有关系,今天就由本站为大家分享contexts的知识,包括修复selinux contexts是什么意思的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录修复selinu

2024年7月30日 07:26

数据库工程师和软件工程师哪个好(软件设计师,数据库系统工程师 和网络工程师哪个更好)

数据库工程师和软件工程师哪个好(软件设计师,数据库系统工程师 和网络工程师哪个更好)

大家好,如果您还对数据库工程师和软件工程师哪个好不太了解,没有关系,今天就由本站为大家分享数据库工程师和软件工程师哪个好的知识,包括软件设计师,数据库系统工程师 和网络工程师哪个更好的问题都会给大家分析到,还望可以解决大家的问题,下面我们就

2024年7月31日 08:25

闪存和固态硬盘区别(普通硬盘和固态硬盘和闪存硬盘的区别)

闪存和固态硬盘区别(普通硬盘和固态硬盘和闪存硬盘的区别)

本文目录普通硬盘和固态硬盘和闪存硬盘的区别闪存硬盘和固态硬盘的区别在什么地方固态硬盘和闪存有什么区别,各有什么优势,哪个更好闪存和固态硬盘ssd区别闪存和固态硬盘的区别闪存,固态硬盘都有什么区别闪存、SSD固态硬盘、传统硬盘 分别有什么区别

2023年11月28日 15:20

brochure是什么意思(印刷中 24pp 4/4 brochure 是什么意思)

brochure是什么意思(印刷中 24pp 4/4 brochure 是什么意思)

本文目录印刷中 24pp 4/4 brochure 是什么意思company brochure是什么意思brochure是什么意思booklet,pamphlet,brochure,handbook有什么区别travel brochure是

2024年7月24日 03:32

assertequals java(请问Java中有两个String,如何从其中一个String删除另一个String中包含的内容)

assertequals java(请问Java中有两个String,如何从其中一个String删除另一个String中包含的内容)

本文目录请问Java中有两个String,如何从其中一个String删除另一个String中包含的内容java对象为空的判断java 有关问题,如图java中的assertEquals函数,三个参数是什么意思一段java代码的不理解,希望高

2024年7月24日 07:07

json集合格式(一个java对象内包含一个对象集合 用json-lib框架怎么转换成JSON数据格式)

json集合格式(一个java对象内包含一个对象集合 用json-lib框架怎么转换成JSON数据格式)

其实json集合格式的问题并不复杂,但是又很多的朋友都不太了解一个java对象内包含一个对象集合 用json-lib框架怎么转换成JSON数据格式,因此呢,今天小编就来为大家分享json集合格式的一些知识,希望可以帮助到大家,下面我们一起来

2024年9月27日 09:45

美团网页在线客服(怎么联系美团客服)

美团网页在线客服(怎么联系美团客服)

各位老铁们好,相信很多人对美团网页在线客服都不是特别的了解,因此呢,今天就来为大家分享下关于美团网页在线客服以及怎么联系美团客服的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录怎么联系美团客服美团客服电话人工服务

2024年8月19日 18:30

html弹窗广告制作(网页出现付费预测彩票的弹窗广告,应当怎样做)

html弹窗广告制作(网页出现付费预测彩票的弹窗广告,应当怎样做)

本文目录网页出现付费预测彩票的弹窗广告,应当怎样做网页中右下角弹出的flash广告怎么嵌入的,怎样把自己制作的flash嵌入到网上好用的电脑广告制作 软件有哪些网页出现付费预测彩票的弹窗广告,应当怎样做不予理睬该广告,安装360安全卫士或具

2024年7月11日 16:22

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2334
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1731
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1156
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1152
标签列表

热门搜索