Q1:函数中的Return语句有什么用?

Q2Return 0有什么含义吗?

A1Return的作用为,跳出当前的函数,并且返回到调用当前函数的主调函数,当前函数中Return语句一下代码将不会运行,因为代码运行过程已经返回到主调函数中去了,而不是当前的函数

A1代码验证:

点击查看代码
#include <stdio.h>

int test_return(int num_1, int num_2);

int main(){
int num_1, num_2;
printf("Please enter two number:\n");
scanf("%d%d", &num_1, &num_2);
test_return(num_1,num_2);
printf("add = %d", test_return(num_1,num_2));
printf("\n");
return 0;
} int test_return(int num_1, int num_2){
return num_1 - num_2;
//两个不同的return来检验return的终止性
return num_1 + num_2;
}

输出结果:

我们可以发现,成功的输出了test_return( )函数的值,这说明主函数main( )在调用了函数test_return( )后,又回到了主函数并且执行了语句:printf("add = %d", test_return(num_1,num_2));

这验证了A1中对return作用1的描述

在代码中我们可以发现,函数test_return( )中有两个返回值:

1:return num_1 - num_2;

2:return num_1 + num_2;

明显,输出只给出了return1中的值即:return num_1 - num_2;  这验证了A1中对return终止运行作用的描述

测试2:(将return1注释掉)

点击查看代码
#include <stdio.h>

int test_return(int num_1, int num_2);

int main(){
int num_1, num_2;
printf("Please enter two number:\n");
scanf("%d%d", &num_1, &num_2);
test_return(num_1,num_2);
printf("add = %d", test_return(num_1,num_2));
printf("\n");
return 0;
} int test_return(int num_1, int num_2){
//return num_1 - num_2;
//两个不同的return来检验return的终止性
return num_1 + num_2;
}

输出结果:

一个复杂一点的代码(用于理解return回溯到主调函数):

点击查看代码
#include <stdio.h>

int one_three(void);
int two(void);
int main(void){
printf("starting now:\n");
one_three();
printf("done\n");
return 0;
}
int one_three(void){
printf("one\n");
two();//定义函数中调用定义函数,
// 这里调用了函数two(),
// two(),return后,还是回溯到one_three()中,即这里的主调函数就是one_three()
printf("three\n");
return 0;
}
int two(void){
printf("two\n");
return 0;
}

A2

return 0的用途:用来告知程序的结束。return 0 告诉程序正常结束。

return 表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,由return后面的参数指定。(这里我们在A1中说明了) return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。(以上代码就是该情况)

//作者:CCCPKeay

//时间:2021.10.19

C语言的return语句的更多相关文章

  1. javascript 核心语言笔记 5 - 语句

    表达式在 JavaScript 中是短语(phrases),那么语句(statements)就是 JavaScript 整句或命令,语句以分号结束.表达式计算出一个值,语句用来执行以使某件事情发生 表 ...

  2. 有return语句情况下,try-catch-finally的执行顺序

    重要结论: 1.不管有没有出现异常,finally块中代码都会执行 2.当try和catch中有return时,finally仍然会执行 3.finally是在return后面的表达式运算后执行的(此 ...

  3. C语言第五讲,语句 顺序循环选择.

    C语言第五讲,语句 顺序循环选择. 一丶语句的简明了解 我们知道,在编写C语言程序的时候,代码是顺序执行的. 从上往下执行. 但是我们可以控制流程的. 在控制之前,我们要先熟悉什么是语句. 相比大家学 ...

  4. 函数----基础,参数传递,返回类型和return语句

    一.函数基础1.形参和实参 实参是形参的初始值.第一个实参初始化第一个形参,第二个实参初始化第二个形参,以此类推.尽管实参与形参存在对应关系,但是并没有规定实参的求值顺序.编译器能以任意可行的顺序对实 ...

  5. C#6.0语言规范(八) 语句

    C#提供了各种语句.大多数这些语句对于使用C和C ++编程的开发人员来说都很熟悉. statement : labeled_statement | declaration_statement | em ...

  6. Swift5 语言参考(五) 语句

    在Swift中,有三种语句:简单语句,编译器控制语句和控制流语句.简单语句是最常见的,由表达式或声明组成.编译器控制语句允许程序更改编译器行为的各个方面,并包括条件编译块和行控制语句. 控制流语句用于 ...

  7. PHP:第二章——PHP中的break一continue一return语句

    知识点一:break语句     break 结束当前 for,foreach,while,do-while 或者 switch 结构的执行.     break 可以接受一个可选的数字参数来决定跳出 ...

  8. python基础----函数的定义和调用、return语句、变量作用域、传参、函数嵌套、函数对象、闭包、递归函数

    1.函数的定义: 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可 ...

  9. C语言中递归什么时候能够省略return引发的思考:通过内联汇编解读C语言函数return的本质

    事情的经过是这种,博主在用C写一个简单的业务时使用递归,因为粗心而忘了写return.结果发现返回的结果依旧是正确的.经过半小时的反汇编调试.证明了我的猜想,如今在博客里分享.也是对C语言编译原理的一 ...

随机推荐

  1. BUUCTF-[CISCN2019 华北赛区 Day1 Web5]CyberPunk

    BUUCTF-[CISCN2019 华北赛区 Day1 Web5]CyberPunk 看题 看源码有提示?file=? 文件包含漏洞,可以利用这个漏洞读取源码. 分析 index.php?file=p ...

  2. vue 之 v-model

    v-model虽然很像使用了双向数据绑定的 Angular 的 ng-model,但是 Vue 是单项数据流,v-model 只是语法糖而已: <input v-model="sth& ...

  3. 基于Linux系统的网络服务——高速缓存DNS及企业级域名解析服务

    1.DNS域名系统 DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数 ...

  4. Gitlab(2)- centos7.x 下安装社区版 Gitlab 以及它的配置管理

    前置准备:虚拟机安装以及配置相关 包含安装 centos7.8 虚拟机.设置静态 ip 等 https://www.cnblogs.com/poloyy/category/1703784.html 注 ...

  5. L2TP协议简介

    传送门:L2TP代码实现 1. L2TP 概述 L2TP(Layer 2 Tunneling Protocol,二层隧道协议)是 VPDN(Virtual Private Dial-up Networ ...

  6. FastAPI(2)- 快速入门

    安装 FastAPI pip install fastapi # 将来需要将应用程序部署到生产环境可以安装 uvicorn 作为服务器 pip install uvicorn 最简单的代码栗子 fro ...

  7. MySQL查询之内连接,外连接查询场景的区别与不同

    前言 我在写sql查询的时候,用的最多的就是where条件查询,这种查询也叫内连查询inner join,当然还有外连查询outer join,左外连接,右外连接查询,常用在多对多关系中,那他们区别和 ...

  8. 远程桌面无法复制粘贴 rdpclip.exe

    在一些意外情况下,远程桌面无法与桌面共享复制内容,这时候需要杀掉一个进程并重新启动 远程桌面复制之后,无法在本地桌面粘贴   在远程桌面中右键点击,选择启动任务管理器   找到一个进行rdpclip. ...

  9. Jenkins教程(七)实现 GitLab 提交/合并代码触发构建

    楔子 最近公司推行统一构建平台(基于 Jenkins + Kubernetes 插件创建 slave),原来部门自建的 Jenkins 不让用了. 迁移上统一构建平台的最大阻力是前端模块发布的问题: ...

  10. 洛谷P1125——笨小猴(简易模拟)

    https://www.luogu.org/problem/show?pid=1125 题目描述 笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼.但是他找到了一种方法,经试验证明,用这种方法去 ...