函数是一个可以重复使用的代码段,用来简化代码
函数又分为库函数和自定义函数
库函数可以在www.cplusplus.com查找,使用库函数要添加头文件.
重点内容是自定义函数
自定义函数组成
返回值类型 函数名(函数参数){
语句;
}
例
#include<stdio.h>
#include<stdlib.h>
/*x,y形参*/
int Max(int x, int y){
if (x > y){
return x;
}
return y;
}
int main(){
int ret = Max(10, 20);/*实参*/
printf("%d\n",ret)
system("pause");
return 0;
}
函数名不能叫max,因为C标准库中(stdlib.h)已经定义了一个名为max的宏,可以写成Max,min也一样
形参是实参的一份拷贝
接下来看一下这个代码
#include<stdio.h>
#include<stdlib.h>
void Swap(int x, int y){
int t = x;
x = y;
y = t;
}
int main(){
int a = 10;
int b = 20;
Swap(a,b);
printf("%d,%d\n", a, b);
system("pause");
return 0;
}
我们的原意是交换a,b的值,但我们发现这个代码并不能实现a,b交换
原因是我们交换的是x,y,而a,b只是我们赋给x,y的值,所以a,b并没有交
我们如何改进 使用指针
#include<stdio.h>
#include<stdlib.h>
void Swap(int* x, int* y){
int t = *x;
*x = *y;
*y = t;
}
int main(){
int a = 10;
int b = 20;
Swap(&a,&b);
printf("%d,%d\n", a, b);
system("pause");
return 0;
}
void Swap(int* x, int* y)当中的*和int在一起是个类型,
而int t=x中的是解引用操作或间接访问操作,
指针是一个变量,变量里面存一个整数,这个整数是内存上的地址.
什么是内存上的地址?
我们可以把内存想象成一个长长的大走廊,走廊上有很多个房间,
每个房间多大,是一个字节,假如我的电脑有8G个内存,就有80亿个字节,走廊就有80亿个房间,每一个房间都有一个编号,从零开始依次往上递增,这个编号就叫做内存的地址,我们指针变量里面存文档就是一个整数就是一个地址,解引用操作就是根据地址,看这个房间里面存的数据是什么.
调用函数时,由于形参是指针,存的是地址,所以我们取出a,b的地址