文档介绍:C是模块化程序设计语言
C程序结构
C是函数式语言
必须有且只能有一个名为main的主函数
C程序的执行总是从main函数开始,在main中结束
程序中函数都是平行的,不能嵌套定义,可以嵌套调用
第八章函数
main()
{ int a,b;
int c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("Max is %d\n",c);
}
max(int x, int y)
{ int z;
z=x>y?x:y;
return(z);
}
例如下面是一个C源程序,它由两个函数组成,
即 main 与 max 函数
main()
{ int a,b;
int c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("Max is %d\n",c);
}
max( x, y)
int x , y ;
{ int z;
z=x>y?x:y;
return(z);
}
函数分类
1、标准函数(库函数:由系统提供):
例如:printf 函数、sqrt函数.
2、用户自定义函数: 例如:上面程序中的
max 函数
max(int x, int y)
{ int z;
z=x>y?x:y;
return(z);
}
函数的定义
一般格式
函数体
函数类型函数名(形参类型说明表)
{
说明部分
语句部分
}
例有参函数(现代风格)
int max(int x,int y)
{ int z;
z=x>y?x:y;
return(z);
}
例有参函数(现代风格)
int max(int x, y)
{ int z;
z=x>y?x:y;
return(z);
}
例空函数
dummy( )
{ }
函数体为空
例无参函数
printstar( )
{ printf(“**********\n”); }
省略时为 int 类型
void 类型是无返回值
形参
函数的返回值
返回语句形式:
return(表达式);
或 return 表达式;
或[return;]
功能:使程序控制从被调用
函数返回到调用函数中,同时把返值带给调用函数
函数结束标志: 遇到 return 语句或执行到最后一个}
main()
{ int c , a=1 , b=2;
c=add(a,b);
printf( “c= %d ”,c);
}
int add(int x, int y)
{ int z;
z=x+y ;
return(z);
} 演示
printstar()
{ printf("**********");
}
main()
{ int a;
a=printstar();
printf("%d",a);
}
例函数带回不确定值
输出:10
void printstar()
{ printf("**********");
}
main()
{ int a;
a=printstar();
printf("%d",a);
}
编译错误!
演示
例函数返回值类型转换
main()
{ float a,b;
int c;
scanf("%f,%f",&a,&b);
c=max(a,b);
printf("Max is %d\n",c);
}
int max(float x, float y)
{ float z;
z=x>y?x:y;
return(z);
}
运行情况:
输入:,
调用函数c=max(,)
返回值(return())
输出:Max is 3
演示
函数的调用
调用形式
函数名(实参1,实参2,…,实参k);
对照函数定义形式
类型函数名(类型1 形参1,类型2 形参2,….)
{……}
说明:实参与形参个数相等,
类型一致,按顺序一一对应
调用方式
函数语句:
例 printstar();
printf(“Hello,World!\n”);
函数表达式:
例 m=max(a,b)*2;
函数参数:
例 printf(“%d”,max(a,b));
m=max(a,max(b,c));
main()
{ int c , a=1 , b=2;
c=add(a,b)*2;
printf( “c= %d ”,c);
}
int add(int x, int y)
{ int z;
z=x+y ;
return(z);
}
printstar()
{ printf("**********");
}
main()
{ printstar();