C语言return的用法

C语言return的用法下面程序当执行到return时是跳出A循环还是B循环还是整个程序?为什么... C语言return的用法 下面程序当执行到return时 是跳出A循环还是B循环  还是整个程序?为什么 展开
 我来答
syht2000
高粉答主

2019-09-03 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部
既不是A也不是B,而是跳出当前函数(如果你当前函数是main那当然也就是跳出程序),不为什么,就这样规定的,要跳出当前循环需要用break(如果你上面的return改为break就是跳出A了),至于B不是循环,无法用break或return跳出。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
coolarcom
2019-09-04 · TA获得超过235个赞
知道小有建树答主
回答量:220
采纳率:0%
帮助的人:222万
展开全部
要了解return的真正意义,首先要知道函数调用的原理。我不知道你对PC指针寄存器,状态寄存器和运行时堆栈有多少了解,以下说明基于假设你了解这些术语的基础上。

1. 程序装载如内存,开始执行,CPU的PC指针寄存器指向程序的主入口第一句执行代码。
2. 程序从主入口开始执行,并创建运行时堆栈。
3. CPU将PC指针递增使得程序顺序执行,CPU根据语句执行的结果修改状态寄存器。
4. 当出现函数调用时,将当前的PC指针寄存器的值以及状态寄存器的值压入堆栈,然后将PC指针寄存器的值修改为即将被调用的函数的第一句执行代码。
5. 程序开始执行被调用函数的代码,CPU将PC指针递增使得程序顺序执行,CPU根据语句执行的结果修改状态寄存器。
6. 当遇到return语句或函数自然结束时,CPU将之前压入堆栈的PC指针寄存器和状态寄存器的值弹出,并写回到相应的寄存器中。
7. CPU开始继续执行主函数后续的代码。

下面对以上流程做一下解释
PC指针寄存器中存储的是一个内存地址,该地址中存储着当前正在执行的代码。通过修改这个寄存器的值可以达到跳转到其代码的效果。函数调用和if,switch,for等分支循环语句都是通过操纵PC寄存器来实现的,但函数调用与分支循环的差别在于,函数调用结束后需要返回到上一层函数的执行现场,继续往下运行,这就需要在修改PC指针前将当前的PC指针保存好,一边函数返回时回复,由于子函数又可以继续调用其他函数,所以需要使用堆栈这种后进先出的数据结构去保存。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
犁瑞邰建安
2019-09-05 · TA获得超过3940个赞
知道大有可为答主
回答量:3044
采纳率:28%
帮助的人:196万
展开全部
这条
语句
一般情况下加在
主函数
的最后,表示
程序
运行正常,则返回一个
整数
值0。其实在windows下一般没有这个要求,除非是一个程序调用另外一个程序,或者在unix和linux下系统会要求一个程序返回一个整数值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鱼块a6
2020-11-08 · TA获得超过2.5万个赞
知道答主
回答量:16.5万
采纳率:12%
帮助的人:7861万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2020-05-18 · TA获得超过1.3万个赞
知道答主
回答量:10.3万
采纳率:2%
帮助的人:4972万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式