函数

1.函数的定义:

<存储类型> <数据类型> 函数名 (<形参列表>)

{

   return 表达式;

}

 

(a),<存储类型>:不是用来说明函数的存储位置,而是说明使用范围;

注意:只能是ertern()static()

extern()表明函数全局可用,即本文件可用,且本项目其它函数文件同样可以使用;

static ()是静态函数,表明函数只能在本文件中使用,其他文件不可以使用。

 

(b),<数据类型>:函数类型不是用来说明函数大小的,函数中是代码,没有大小; 

                            函数的数据类型用来说明函数在执行结束后返回的数据类型。

 

(c),<函数名>:函数名表明函数代码块的名称,是函数代码的起始地址(函数的第一行汇编代码的地址)。

注意:不可以对函数名求大小,不可以对函数执行+1操作。

 

(d),<函数参数>:是用来接受调用函数传递的数据的,是相应类型的变量。如果调用函数没有参数要传递,则写成void;函数参数叫形式参数,简称为形参。

 

(e),<函数返回值>:(1)函数返回值由return语句返回,如:return z;return(z);return(表达式);三种形式都可以,括号可以省略,保持简洁。

                                (2)函数定义类型和返回类型保持一致。

                                (3)void定义的函数表示空类型,可以没有返回值,即直接return;或者直接省略return。

(f),<函数声明>:extern int add_fun(int x,int y)//  函数原型声明,前面省略了ertern

                           add_fun(int x,int y)记住要加分号!!!//  忽略函数类型,默认是int类型

                           int add_fun(int,int)//  省略形参名,编译器根本不关心形参名,只关心形参类型

(g),<函数调用>:函数在调用时开始申请空间,且函数调用结束会释放空间。

(h),<函数传参>:

                         值传递:将调用函数中的变量赋值一份给形参,形参的操作不会对实参产生影响。

                         典型的函数是:printf("%d",a);

                         址传递:将调用函数中变量的地址传递给形参。

                         典型的函数是:scanf("%d",a);

 

 递归函数:

 

                    递归是一种特殊的嵌套函数,被调用函数是函数自身,每一次调用都会按照fun函数的规则去重新申请空间,递归必须有结束条件,否则会无限递归,造成段错误。
 
 
 指针函数:
                     int a;整型变量
                     int a[5];整型数组,存放整数的数组
                     int fun();整型函数,返回整数的函数
 
                     int *p;整型指针变量
                     int *a[5];整形指针数组,存放整形指针数组
                     int *fun(...) 整型指针函数,存放整形指针的函数
 
 
 函数指针:
                      int a;
                      int *p;
                      p = &a;
 
                      int a[N];
                      int (*p)[N];
                      p = &a;
 
                      int fun(int ,char);
                      int (*p)(int ,char);
                      p = &fun;
 

 

 

 

内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!

相关课程

3745 0元 50元 限免