函数
C语言的函数需要先声明后定义再使用
声明(养成良好习惯,写好函数声明)
返回值类型 函数名(参数列表);
函数声明末尾分号别忘了。
定义
返回值类型 函数名(参数列表)
{
函数体;
}
其中返回值类型没有就写void,不写默认返回整型,没有参数可以不写,括号必须写,函数末尾没有分号
使用
像调用库函数一样写函数名(参数)就行
函数名(参数);
注意这里的参数是用户传入的实参,上面定义是形参
函数参数和指针
1、传值
void swap(int x,int y)
{
int temp;
temp = x;
x = y;
y = temp;
}
功能在函数体里可以实现,但不改变函数之外的数据。调用了这个函数后x,y的值并没有改变,相当于复制了参数的值并对复制的值进行交换
2、传址
void swap(int *x,int *y)
{
int temp;
temp = *x;
*x = *y;
*y = temp;
}
这样把实参的地址传入函数,函数直接对地址的数据进行操作,函数外的数据就会改变
3、引用
void swap(int &x,int &y)
{
int temp;
temp = x;
x = y;
y = temp;
}
作用和传地址一样,不过引用相当于给变量取了另一个名字,实际上还是对传入的变量进行操作
4、传数组
void print(int a[10])
{
int i;
for(i=0;i<10;i++)
{
printf("%d\n",a[i]);
}
}
这跟只传一个数不一样,没有把整个数组拷贝进去这种传法,之前讲过,数组名相当于他的指针,因为数组名是第一个元素的地址,注意是地址,所以如果传入数组,在函数里面修改数组中某一个数的值的话是可以的。