赞
踩
为什么要用函数
避免代码冗长
模块化的设计思路
按功能划分,每个函数代表一个功能
函数要先定义在使用,和变量一个道理
函数的三要素
函数名——体现功能;
参数列表——例如:z=f(x,y) xy就是参数——参数的个数根据需求定义
返回值——例如:z=f(x,y) z是函数根据x,y的值个f的功能执行后的结果
函数体——执行什么样的功能,涉及的处理代码叫函数体
函数的定义和调用
定义无参数函数
类型名 函数名()
{
函数体
}
- #include <stdio.h>
-
- void printfWelcome ()
- {
- printf("================\n");
- printf("欢迎来到我的程序\n");
- printf("================\n");
- }
-
- int main()
- {
- printfWelcome();
- return 0;
- }
定义有参数有返回值的函数
1.
- #include <stdio.h>
-
- int getDataFromX(int x) //()里为形式参数,需要包含变量类型,变量的名字随便
- {
- int data;
- data = x - 1;
- return data; //return 后可以是 X-1
- }
-
- int main()
- {
- int x;
- int y;
- puts("请输入x的值");
- scanf("%d",&x);
- y = getDataFromX(x);
- printf("x的值为%d ,y的值为%d\n",x,y);
- return 0;
- }
2.
- #include <stdio.h>
-
- int add(int data1,int data2)
- {
- int ret;
- ret = data1 + data2;
-
- return ret;
- }
-
-
- int main()
- {
- int x;
- int y;
- int z;
-
- puts("请输入一个数");
- scanf("%d",&x);
- puts("再输入一个数");
- scanf("%d",&y);
- z = add(x,y);
- printf("%d + %d = %d",x,y,z);
-
- return 0;
-
- }
定义空函数——程序设计,模块设计的时候占坑
函数调用需要注意的问题:
调用函数是不能带返回值的类型;例如 int add(2,3) 是错的
调用函数时形式参数不能带类型;例如 add(int a,int b) 是错的
函数可以当作表达式——用的是他的返回值;
函数调用当作其他函数调用的参数——用的也是他的返回值。
1.在调用有参函数时,主调函数和被调用函数之间有数据传递关系。
在定义函数时函数名后面括号中的变量名称为“形式参数”。
在主调函数中调用一个函数时,函数名后面括号中的参数称为“实际参数”。实际参数可以是常量,变量或表达式
传递参数,传递的是值——形参和和实参值相同,但是地址空间不同
2.局部变量
在fun1中定义了变量a,b;在fun2中定义了变量a,c
两个变量a不是同一个对象,他们有自己的有效范围
输入两个整数,要求输出较大的数
- #include <stdio.h>
-
- int getBigData(int x,int y)
- {
- int z;
- if(x>y){
- z = x;
- }else{
- z = y; //这里可以用 z = x>y?x:y; (三目运算符)
- }
- }
-
- int main()
- {
- int data1;
- int data2;
- int Max;
-
- puts("请输入两个数");
- scanf("%d%d",&data1,&data2);
-
- Max = getBigData(data1,data2);
-
- printf("两个数是:%d,%d;大数是:%d\n",data1,data2,Max);
- return 0;
-
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。