今天一起来分析C语言,return语句的用法。
return语句的用法
一个C语言程序往往由一个主函数和若干个子函数构成,由主函数调用其它子函数,其它子函数之间也可以互相调用。通常希望通过函数调用使主函数能得到一个确定的值,这就是函数的返回值。
return语句仅仅只用一种场合:用于被调用子函数的返回。
return 表示把程序流程从被调函数转向主调函数并把表达式的值带回主调函数,实现函数值的返回,返回时可附带一个返回值,由return后面的参数指定。return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。 如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。
/* Note:Your choice is C IDE */
#include "stdio.h"
char max(int a,int b)
{
int c;
if(a>b)
{
c=a;
}
else
{
c=b;
}
return c;//c为子函数返回值
}
void main()
{
int k;
k=max(10,18);
printf("k=%d\n",k);
}
return语句使用注意:
1、如果函数有类型,那么它一定有返回值,也就是说子函数中一定有return语句。如果函数没有类型(类型为void),那么它就没有返回值,也就是说子函数中没有return语句,即使有也不会有返回值。
2、函数返回值的类型一定和函数的类型一致,也就是说函数类型决定函数返回值的类型,函数返回值往往就是一个子函数的结果输出。
3、函数的返回值是通过函数中的return语句来实现的,每调用一次return语句只能从函数中返回一个值。
4、在实际编写子函数的时候,我们需要从函数中返回多个值,可以用三种方法来实现。
4.1、通过全局变量来实现
全局变量是在函数外部定义的全局变量,它不属于任何一个函数,其作用域是从变量的定义处开始,到本程序文件的结尾。在此作用域内,全局变量可为各个子函数所引用。当我们需要函数返回多个值时,除了函数体中的return语句返回其中一个之外,其它的返回值我们可以通过定义全局变量来处理。因为根据全局变量的特点,在被调用函数中改变了多个全局变量和值,相当于其主调函数全局变量的值也发生了变化,也就相当于返回了多个值。
4.2、使用数组名或指针作为子函数的形式参数
数组名或者指针实际为地址,而数组一般都包括多个元素,指针也可以指向一组数据的首地址,把数组名或者指针作为函数形参,实际上相当于主调函数的实参与形参共用地址,所以在函数中的数组元素发生改变,实参也随之改变。相当于在调用函数时多个值返回给主调函数。
4.3、用结构体作为函数的形参
如果返回值的类型不相同,我们可以用结构体和共用体,将结构体和共用体首地址作为函数实参,传递给子函数的形式参数。当函数需要返回多个不同类型的值时,可以用结构体来实现。
5、在子函数中,只要碰到任何一个return 语句,那么程序就会返回调用该函数的下一条语句执行,也就是说跳出该子函数的执行,回到原来的地方继续执行下去。
6、如果是在主函数中碰到return语句,那么整个程序就会停止,退出程序的执行。
return语句的用法
一个C语言程序往往由一个主函数和若干个子函数构成,由主函数调用其它子函数,其它子函数之间也可以互相调用。通常希望通过函数调用使主函数能得到一个确定的值,这就是函数的返回值。
return语句仅仅只用一种场合:用于被调用子函数的返回。
return 表示把程序流程从被调函数转向主调函数并把表达式的值带回主调函数,实现函数值的返回,返回时可附带一个返回值,由return后面的参数指定。return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。 如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。
/* Note:Your choice is C IDE */
#include "stdio.h"
char max(int a,int b)
{
int c;
if(a>b)
{
c=a;
}
else
{
c=b;
}
return c;//c为子函数返回值
}
void main()
{
int k;
k=max(10,18);
printf("k=%d\n",k);
}
return语句使用注意:
1、如果函数有类型,那么它一定有返回值,也就是说子函数中一定有return语句。如果函数没有类型(类型为void),那么它就没有返回值,也就是说子函数中没有return语句,即使有也不会有返回值。
2、函数返回值的类型一定和函数的类型一致,也就是说函数类型决定函数返回值的类型,函数返回值往往就是一个子函数的结果输出。
3、函数的返回值是通过函数中的return语句来实现的,每调用一次return语句只能从函数中返回一个值。
4、在实际编写子函数的时候,我们需要从函数中返回多个值,可以用三种方法来实现。
4.1、通过全局变量来实现
全局变量是在函数外部定义的全局变量,它不属于任何一个函数,其作用域是从变量的定义处开始,到本程序文件的结尾。在此作用域内,全局变量可为各个子函数所引用。当我们需要函数返回多个值时,除了函数体中的return语句返回其中一个之外,其它的返回值我们可以通过定义全局变量来处理。因为根据全局变量的特点,在被调用函数中改变了多个全局变量和值,相当于其主调函数全局变量的值也发生了变化,也就相当于返回了多个值。
4.2、使用数组名或指针作为子函数的形式参数
数组名或者指针实际为地址,而数组一般都包括多个元素,指针也可以指向一组数据的首地址,把数组名或者指针作为函数形参,实际上相当于主调函数的实参与形参共用地址,所以在函数中的数组元素发生改变,实参也随之改变。相当于在调用函数时多个值返回给主调函数。
4.3、用结构体作为函数的形参
如果返回值的类型不相同,我们可以用结构体和共用体,将结构体和共用体首地址作为函数实参,传递给子函数的形式参数。当函数需要返回多个不同类型的值时,可以用结构体来实现。
5、在子函数中,只要碰到任何一个return 语句,那么程序就会返回调用该函数的下一条语句执行,也就是说跳出该子函数的执行,回到原来的地方继续执行下去。
6、如果是在主函数中碰到return语句,那么整个程序就会停止,退出程序的执行。