C语言函数基本知识总结

目录

1.函数的分类

2.函数的调用

1.传值调用和传址调用

2.嵌套调用和递归调用

1.嵌套调用

2.递归调用 

3.内部函数与外部函数

4.函数的定义和声明

1.函数的定义

2.函数的声明


1.函数的分类

从使用者的观点分为 : C 编译系统提供的标准库函数 用户自定义函数; 从函数间数据传送的有无分为 : 有参函数、无参函数 有返回值函数、无返回值函数; 从函数的调用分为 : 内部函数和外部函数

2.函数的调用

1.传值调用和传址调用

我们在某些情况下对变量进行传值调用

eg.我们要实现一个比较两个数大小的函数

int Max(int x, int y)
{if (x > y)return x;//注意返回elsereturn y;//注意返回
}
int main()
{int a;int b;scanf("%d%d", &a, &b);int c = Max(a, b);printf("\n%d", c);return 0;
}

但在另一些情况下我们传值调用无法实现我们的目的,例如需要返回的值有两个或多个,这时候我们考虑传址调用

eg.我们要实现一个交换两个数大小的函数

void Exc(int* px, int* py)//接收地址
{int tmp=*px;//用指针变量修改a和b*px =*py;*py = tmp;
}
int main()
{int a;int b;scanf("%d%d", &a, &b);Exc(&a,&b);//将地址输入函数printf("a=%d b=%d", a, b);return 0;
}

2.嵌套调用和递归调用

1.嵌套调用

函数的嵌套调用是指在调用一个函数的过程中,该函数又调用另一个函数。在C 语言中 各函数均处于平等关系,任何一个函数都可以调用和被调用 ,   main例外,main函数总是最先被调用 eg.打印两个数中较大的数
int Max(int x, int y)
{return x > y ? x : y;
}
int main()
{int a, b;scanf("%d%d", &a, &b);printf("%d", Max(a, b));return 0;
}

2.递归调用 

函数的递归调用是指在一个函数调用过程中又直接或间接调用自己, 这样的函数称为递归函数。

eg.求一个数的阶乘

int Fir(int x)
{return x > 2 ? Fir(x - 1)*x : x;
}
int main()
{int a;scanf("%d", &a);printf("%d",Fir(a));return 0;
}

3.内部函数与外部函数

                      只能被本文件中的其他函数所调用的函数称为内部函数。 格式:

                   static   函数类型   函数名(形参)

内部函数也称静态函数 内部函数不能被其他文件中的函数使用,  所以在不同文件中可以使用相同名字的内部函数。                                                                                                                                                             在一个文件内定义的函数,  也可以被其他文件内的函数调用, 这样的的函数称为外部函数。 格式:     

             extern   函数类型  函数名(形参)

说明: 在C 语言中 , 函数前如果无关键字 extern , 隐含为外部函数。 在调用它的其他文件中,  extern加函数原型来声明所用的函数是外部函数。

4.函数的定义和声明

1.函数的定义

我们通常在源文件中进行函数的定义

形式 :

       函数类型   函数名(参数表)

       参数说明

       {

           数据说明

           执行语句

       }

eg.

void Displayboard(char arr[ROW][COL], int row, int col)
{int i, j;for (i = 0; i < row; i++){for (j = 0; j < col; j++){printf(" %c ", arr[i][j]);if (j < col - 1)printf("|");}printf("\n");if (i < row - 1){for (j = 0; j < col; j++){printf("---");if (j < col - 1)printf("|");}printf("\n");}}
}

2.函数的声明

我们通常在头文件中进行函数的声明

       形式:

             函数类型  函数名(参数表)分号

eg.

void Displayboard(char arr[ROW][COL], int row, int col);


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部