1、用函数实现两个数的交换
在没用函数之前,可以这样实现
#include
int main() {
int a = 3;
int b = 7;
int c;
printf("交换前,a=%d,b=%d\n", a, b); // a=3,b=7
c = a;
a = b;
b = c;
printf("交换后,a=%d,b=%d\n", a, b); // a=7,b=3
return 0;
}
但如果需要用到函数,以下交换是行不通的
#include
void swap(int x, int y) {
int z;
z = x;
x = y;
y = z;
}
int main() {
int a = 3;
int b = 7;
printf("交换前,a=%d,b=%d\n", a, b); // a=3,b=7
swap(a, b);
printf("交换后,a=%d,b=%d\n", a, b); // a=3,b=7
return 0;
}
这时候指针就有用处了
#include
void swap(int *x, int *y) {
int z;
z = *x;
*x = *y;
*y = z;
}
int main() {
int a = 3;
int b = 7;
printf("交换前,a=%d,b=%d\n", a, b); // a=3,b=7
// 传入的是变量的地址
swap(&a, &b);
printf("交换后,a=%d,b=%d\n", a, b); // a=7,b=3
return 0;
}
2、用一个函数实现并得出两个整型变量的和与差
#include
int sum(int x, int y, int *poor) {
*poor = x - y;
return x + y;
}
int main() {
int a = 7;
int b = 3;
int s;
int p;
s = sum(a, b, &p);
printf("%d和%d的和是%d,差是%d\n", a, b, s, p);
// 7和3的和是10,差是4
return 0;
}