C-015.函数的基本概念、定义、调用、返回值、参数和声明

来源:互联网 发布:小灰熊字幕制作软件 编辑:程序博客网 时间:2024/04/30 02:57

1.函数的基本概念

函数:完成特定功能代码块

函数作用:管理代码的
函数的优点:提高代码的可读性
提高代码的复用性
提高代码可维护性

函数:函数名不可以重复定义
要给函数起一个有意义的名字

函数特点:只有调用才会执行


void printfHello(){          //定义一个打印hello功能的函数    printf("hello1\n");    printf("hello2\n");    printf("hello3\n");}int main(int argc, const char * argv[]) {    //如果我想打印4次    for (int i = 0 ; i < 4; i++) {        printfHello();   //执行函数,不用每次都重复写    }    return 0;}

2.函数的定义和调用

2.1函数定义的格式


返回类型 函数名称(参数类型 参数名称,参数类型 参数名称,...)
{
语句;
....
return xxx;
}


如何去定义一个函数:
1、根据函数的功能给函数起一个有意义名字
2、确定需不需要传人一些补助的值
3、确定需要返回什么类型的数据给函数调用者
4、完成函数功能

void 当函数没有返回值的时候,就将将函数的返回值类型声明为 void

当函数的返回值类型为void的时候,return 语句可以省略

什么时候需要形式参数:当我们完成某个功能,有写数据我们不能确定,那么这时候就需要外界告诉我们


2.2函数的调用的格式


无返回值:函数名称(实际参数,实际参数,...);

有返回值:返回值类型 类型名称 = 函数名称(实际参数,实际参数,...);


在C语言中不允许函数嵌套:也就是说在函数内部不可以再定义其他函数了
函数可以嵌套调用:在一个函数内部可以调用其他的函数,被调用的这个函数内部还可以再调用其他的函数


void printfHello(){          //定义一个没有返回值,没有参数,功能为打印hello的函数    printf("hello\n");}void printManyHello(int num){ //定义一个有参数没有返回值的函数,打印许多的hello的函数    for (int i = 0; i < num; i++) {        printfHello();    }}int sum(int num1,int num2){  //定义一个求和的函数    //int num1 = 2;  在函数内部不能定义与形参同名的变量    return num1 + num2;      //返回它们的和}int score(){   //定义一个有返回值,无参数的函数    return 100;}int main(int argc, const char * argv[]) {    //使用没返回值,无参数的函数    printfHello();        //使用没返回值,有形参的函数    printManyHello(3);        //使用有返回值,有形参的函数    int a = sum(1, 2);      //需要定义变量去接收返回值,括号内的输入实参     printf("a = %d\n",a);        //使用有返回值,无形参的函数    int b = score();    printf("b = %d\n",b);                return 0;}


3.函数的参数、返回值、return

3.1函数的参数

形参:当定义函数的时候,函数名称后面小括号中参数我们称为形式参数简称形参
实参:当调用函数的时候,函数名称后面小括号中的参数我们称为实际参数简称实参

1、实参与形参是一一对应的
2、形参是什么类型的那么实参也必须传人什么类型的值
3、形参列表中不可以有同名的形参
4、在函数内部也不可以直接定义与形参同名变量
5、基本数据类型作为函数参数传递的时候是值传递
6、值传递:仅仅是把实参的值赋值给形参,改变形参的值,并不影响实参值(重点)


3.2函数的返回值

主调函数:调用其他函数的那个函数
被调函数:在其他中被调用函数

1、函数定义中声明是什么返回值类型,那么在主调函数中就必须时候相同类型的变量接收
2、什么样的返回值类型就必须返回什么样类型的值,确保返回的值的类型与函数定义中返回值的类型一致
3、如果函数的返回值类型不为空就必须返回一个值


3.3return

return 作用:
1、返回数据给函数调用
2、结束函数

1、在返回值类型为void的函数中,可以使用return来提前结束函数
2、在同一个函数中可以有多个return 语句,但仅仅有一个return会被执行,因为只要执行return那么函数就返回了,后面的代码就都不会执行了

注意点:在C语言中没有函数重载概念,它区分函数仅仅是根据函数的名称,只要是要名称相同就是重复定义,无论形参是否不同

//返回值是int类型   (形式参数num1和num2)   int sum(int num1,int num2)    //这个sum函数是被调函数{    return num1 + num2;  //返回和并且结束函数}int main(int argc, const char * argv[]) {   //这个main函数就是主调函数    int a = sum(1, 2);    //括号内的1和2是实际参数   有返回值就定义同类型的变量    printf("a = %d\n",a);    return 0;}

4.函数的声明

函数声明:就是把函数头拷贝到调用它的前面加上“;”
作用:告诉编译器这个函数已经存在了

一个完成函数是包含2个部分一个就是函数声明,一个就是函数定义

如果一个函数没有写明它的返回值类型,那么它返回值类型默认是int
我们写代码的时候必须要带上返回值类型
无论是声明函数还是定义函数如果不写返回值类型那么默认都是int类型的
函数的声明与函数的定义务必要保持一致

int sum(int num1,int num2);    //仅仅是sum的函数头加“;”int main(int argc, const char * argv[]) {    int a = sum(1, 2);    printf("a = %d\n",a);    return 0;}int sum(int num1,int num2)    //sum函数{    return num1 + num2;}





0 0
原创粉丝点击