输入参数————>函数————>回传值
函数定义
回传值的型别 函数名(参数型别 参数名称){
程式片段
return 回传值;
}
函数是一块代码,接受0个或多个参数,
做一件事情,并返回零个或一个值
主函数内不能定义函数,主函数可以调用函数
如:
#include<stdio.h>
int f(int x){
return x+3;
}
int main(){
printf("%d\n",f(4));
return 0;
}
结果就是7
这和数学的函数f(x)=x+3 带入x=4 的结果是一致的
C语言的函数和数学的函数有一定的相似性,又有不同
同一个函数只能定义一次,但可以调用很多次
被调用的函数要写在被调用之前,
如果要写在被调用之后就必须在开始写函数宣告
如:
#include<stdio.h>
int f(int);
int main(){
printf("%d\n",f(4));
return 0;
}
int f(int x){
return x+3;
}
C语言标准函数库
C语言内建的函数,主要提供
字符串处理 <string.h>
数学运算 <math.h>//sqet(求平方更),ceil(无条件进位)。abs(绝对值)
输入输出处理 <stdio.h>
记忆体管理 <stdlib.h>
与其他系统服务的相关功能
使用之前只需要函数宣告,调用头文件
如:
#include<stdio.h>
函数的返回值
#include<stdio.h>
int main()
{
printf("%d\n",printf("hello world!\n"));
return 0;
}
这个程式最终的结果是会印出
hello world!
13
因为函数都会有返回值,printf("hello world!\n")的返回值是13
所以最终会印出13
而printf("%d\n",printf("hello world!\n"));的返回值是3却没有被印出
一般在使用printf时我们都只使用它的副作用,也就是把字符串印在屏幕上
一般不使用它的返回值
没有返回值的函数
void 函数名(参数表)
不能使用带值的 return
可以没有 return
调用的时候不能做返回值的赋值
void f()表示参数的型是未知的
void f(void)表示没有参数
对于 int main()也可以写为 int main(void)但一定要返回0,
返回除0以外的任何数都是错误的
本地变量的规则
本地变量是定义在块内的
可以定义在函数的块内
也可以随意拉一个大括弧来定义变量
运行这个块前这个变量不存在,离开这个块中变量消失
在块外定义的变量在块里面这个变量依然成立
下面是两个数求最大值的使用函数的练习
#include<stdio.h>
int max2(int a,int b);
int main()
{
int a,b;
printf("please enter two integer:");
scanf("%d%d",&a,&b);
printf("Max is %d\n",max2(a,b));
return 0;
}
int max2(int a,int b){
int max;
if(a>=b){
max=a;
}else{
max=b;
}
return max;
}
对于三个数求最大值可以使用max2
int max3(int a,int b,int c){
int max=max2(max2(a,b),c)
}
下面是一个关于变量使用的例子
#include<stdio.h>
int i=1;
int main()
{
printf("%d",i);//印出的是第二行的i
int i=2;
printf("%d",i);//印出的是第七行的i
{
printf("%d",i);//印出的是第七行的i
int i=3;
printf("%d",i);//印出的是第11行的i
}
printf("%d",i);//印出的是第七行的i
return 0;
}
|