C语言的return语句

时间:2024-02-23 11:25:23

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