return语句

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

return语句


一、return语句后面跟表达式

return语句后面可以是一个数值,也可以是一个表达式,如果是表达式则先执行表达式,在返回表达式的结果

c 复制代码
int add(int a, int b)  //形式参数,简称形参 
{
	return a + b;  //return后面如果是表达式,则先执行表达式,在返回表达式的结果 
}
int main() 
{
	int x = 10; 
	int y = 20; 
	scanf("%d%d", &x, &y); 
	int sum = add(x, y); //真实传递给add函数的参数,我们叫实参(实际参数) 
	printf("%d ", sum); 
	return 0; 
}

在add函数中我们返回a+b,此时我们需要先对a和b的值进行加起来,然后返回a+b的和


二、return无返回

也就是return后面什么都没有,直接写return,这种写法适用于函数返回类型是void的情况

c 复制代码
test(int n)
{
	if (n < 0)
		return;
}
int main()
{
	test(-3);
	return 0;
}

在这里我们调用函数test,传入实参为-3,此时-3满足if条件,满足条件但是我们不需要返回任何东西,可以直接写一个return,表示什么都不返回。


三、return返回的值和函数返回类型不一致

提示:return返回的值和返回类型不一致,系统自动将返回的值隐式转为函数的返回类型

c 复制代码
int test()
{
	return 3.14;
}
int main()
{
	int r = test();
	printf("%d ",r);
	return 0;
}

在这里返回类型是int类型,但是return返回的是小数3.14,此时返回的时候,系统自动将3.14转化为3,也就是小数点后面去掉了,返回值为整数3。


四、return语句执行后,后方仍然存在代码

return语句执行之后,函数就彻底返回,后面的代码不再执行了

c 复制代码
int test() 
{
	return 3.14; 
	printf("hehe\n"); 
}
int main() 
{
	int r = test(); 
	printf("%d ", r); 
	return 0; 
}

在这里我们可以发现,return返回后面还有一句代码打印hehe的代码,但是return返回后,他后面的语句不再执行,所以也就没有打印


五、存在分支语句,需考虑所有的返回值

如果函数中存在if等分支语句,则要保证每种情况都要有return返回,否则就会出现下图一样的错误

在这里他就会出现警告,提醒你不是所有控件路径都会返回,也就是我们忽略了判断奇数的情况,正确代码如下

c 复制代码
int test(int x)
{
	if (x % 2 == 0)
		return 0;
	else
		return 1;
}
int main()
{
	int ret = test(3);
	printf("%d",ret);
	return 0;
}
相关推荐
启雀AI1 小时前
培训平台移动端离线学习方案设计与实现:视频缓存、断点续传与进度同步的工程实践
android·学习·缓存·音视频·企业lms
Fa_Mian_Tuan3 小时前
图论基础|邻接矩阵超详细讲解(含无向/有向/带权图+完整可运行C语言代码)
c语言·数据结构·笔记·算法·图论
Bruce_Liuxiaowei3 小时前
从零到可运行:基于 Vue3 + FastAPI + DeepSeek-V3 的 AI 英语单词学习系统全栈实战
人工智能·python·学习·fastapi·全栈·智能体
bkspiderx4 小时前
从零开始:VS Code搭建C/C++开发环境全指南(Windows/macOS/Linux)
c语言·c++·windows·vs code·c/c++开发环境
雪的季节4 小时前
OPENCV学习(补充1)
人工智能·opencv·学习
wuyk5555 小时前
第 6 章 FOC 完整系统整合:从算法到真机跑起来
c语言·开发语言·stm32·单片机·嵌入式硬件
luj_17685 小时前
元设计的诱惑与现实
c语言·开发语言·c++·经验分享·算法
AC赳赳老秦5 小时前
OpenClaw 多源采集公开行业数据:从原始信息到研究报告初稿的自动化实践
java·c语言·c++·python·php·deepseek·openclaw
zjnlswd6 小时前
C#学习笔记2 刘铁锰
笔记·学习
zyf1044166 小时前
暑期实践日志 Day29:检核视频导出,准备素材上交
学习·计算机网络·剪辑·暑期实践·课题任务