二、函数

来源:互联网 发布:怎样使用淘宝金币 编辑:程序博客网 时间:2024/05/17 08:18

c语言中的函数就是面向对象语言中的方法,c语言的函数可以分为以下几种类型:

1,main主函数,这是c语言的入口函数,每个c语言程序有且只有一个main函数。

2.自定义函数,就是开发人员自己写的函数。

3.库函数,就是c语言函数库中的函数,例如平时导入的stdio.h中的printf函数和scanf函数。

在c语言中函数的定义是必须按照顺序的,因为c语言是一门面向过程的语言,不能像java面向对象的语言一样,在前面定义的函数中是可以调用后面的函数的,在c语言中这样做是不能的,但是也有解决办法。

一、函数的定义:

返回值 函数名 (参数类型 参数名,参数类型 参数名…..){};

如下面就定义了一个名为sum的函数,要求传入两个int类型的参数a,b。最后返回一个int类型的数。

int sum(int a, int b) {     return a + b; }  int main() {     int c = sum(1, 4);     return 0; }

二、函数的声明:

上面说到了,c语言不能在前面的函数中调用后面声明的函数,这里的解决办法就是,可以在前面对后面声明的函数进行提前声明,这样就可以调用后面声明的函数。

// 只是做个函数声明,并不用实现 int sum(int a, int b);  int main() {     int c = sum(1, 4);     return 0; }  // 函数的定义(实现) int sum(int a, int b) {     return a + b; }

在一般的开发项目中,会把函数的声明和函数的定义(实现)分别放在两个同名的文件中,函数的声明放在.h文件中,函数的实现放在.c文件中。

三、函数的形参和实参:

在定义函数时,函数名后面的()中定义的变量称为形式参数(形参);在调用函数时传入的值称为实际参数(实参)。

// b是test函数的形参(形式参数)void test(int b) {    b = 9; // 改变了形参b的值}int main(){    int a = 10;    printf("函数调用前的a:%d\n", a);        test(a); // a是test函数的实参(实际参数)    printf("函数调用后的a:%d", a);    return 0;}

如果是基本数据类型作为函数的形参,那是简单的值传递,将实参a的值赋值给了形参b,相当于:

int a = 10;int b = a;b = 9;

a和b是分别有着不同内存地址的2个变量,因此改变了形参b的值,并不会影响实参a的值。

上面的代码输出结果:



0 0
原创粉丝点击