函数
函数是指能完成特定的功能,一般有返回值,输入参数。
c语言函数分类:1.库函数 2.自定义函数
函数的组成
数据类型 函数名 (参数1,参数2...)
{
语句列表;
return 返回的值;//当函数不需要返回时return可省略其数据类型写为void
}
例1:写一个函数找到较大值。
int max(int a,int b)
{
return a>b?a:b;
}
int main()
{
int x=10;
int y=12;
int ret=0;
ret=max(x,y);
printf("%d",ret);
return 0;
}
分析:max(x,y);这里的参数x,与上面定义的函数里的参数a对应,那么y自然就与函数里的参数y对应;
return返回了一个a和b中较大的一个值,并且与一开始写的函数名前的数据类型对应。
例2:写一个函数交换两个数的值。
void exchange(int x,int,y)
{
int temp=0;
temp=x;
x=y;
y=temp;
}
int main()
{
int a=12;
int b=23;
printf("a=%d b=%d",a,b);
exchange(a,b);
printf("a=%d b=%d",a,b);
return 0;
}
你会发现该函数完成不了交换的任务。
分析:我们知道变量的定义就是为了向内存申请空间,那么上面定义的变量a,b,x,y都是不同空间的变量,也就是说a和x、b和y没一点关系。我们知道变量是可以通过地址进行查找的,那么我们是否可以传a,b的地址作为函数的参数传给函数?答案时可以的,让我们看看改进之后的函数。
void exchange(int* x,int* y)
{
int temp=0;
temp=*x;
*x=*y;
*y=temp;
}
int main()
{
int a=12;
int b=23;
printf("a=%d b=%d",a,b);
exchange(&a,&b);
printf("a=%d b=%d",a,b);
return 0;
}
分析:将变量的地址作为参数传给函数,函数内是可以通地址来访问函数外的变量,并对其进行各种操作。