- 1、函数的定义与返回值
- 1.1、函数的定义
- 1.2注意事项
- 1.3、void类型
- 1.4、函数的返回值
- 1.5、函数的声明
- 2、函数的调用
- 2.1、函数调用的形式
- 3、函数的值传递
- 例1:
int fun(int x,int y){ int z; z=x+y; return z; } int main(){ int a=3,b=5,s; s=fun(a,b) printf("%dn",s); }
- 函数应 先定义 后使用
- C源程序开始于 主函数 ,同时结束于 主函数
- 实参 负责 传递, 形参 负责 接收,函数调用时将 实参 赋予对应的 形参
- 实参与形参的类型 不一致,以 形参 的类型为准
- 实参与形参格占用 独立 的存储单元
- 形参须单独定义,属于 临时变量,调用函数 时为其 分配 存储单元,函数调用结束后 释放 其存储单元
- 函数默认的类型为 int型,可省略
- 函数返回值的类型 由在定义函数时所指定的函数类型 决定的
- 函数**可以没有**形参
- 无返回值类型
- 可以返回,没有值
return 语句;
- 形式:return 表达式;
- 通过return语句,函数只能返回一个返回值
函数应先定义后调用,如果函数的调用出现在了定义钱,则要 先 对 函数进行声明
- 函数声明的形式:
float fun(float x,float y){ return x+y; } - 形式:float fun(float x,floaty);
-
语句调用:fun(a,b);
-
表达式调用:y=fun(x)
-
参数调用:将函数的返回值作为实参进行调用,称为函数的参数调用
int fun(int x,int y){ return x+y; } int main(){ int a=3,b=2,c=5,d; d=fun(fun(a,b),c); printf("%dn",d); return 0; } -
递归调用:函数直接或间接的调用自己,称为函数的`递归调用
- 直接递归:A<——>A(A调用A)
- 间接调用:A<——>B(A调用B,B调用A)
- 在递归调用中是逆向计算,从哪来回哪去
- 在C语言中,主函数可以进行递归调用
int fun(int x){ int y; if(x>1) y=fun(x-1)+2; else y=2; return y=2; } int main(){ printf("%dn",fun(3); //输出6 return 0; } 执行过程: fun(3) x=3 y=fun(3-1)+2; //return 6 fun(2) x=2 y=fun(2-1)+2; //return 4 fun(1) x=1 y=2; //return 2
-
函数的实参传递分为值传递和地址传递
#include
void fun(int x,inty){ x+=y; y+=x; } int main(){ int a=3,b=5; fun(a,b); printf("%d,%dn",a,b); } 输出结果为:3,5 该函数是指传递,所以变量的值不会改变



