为什么80%的码农都做不了架构师?>>>
1、用函数实现两个数的交换
在没用函数之前,可以这样实现
#include <stdio.h>int main() {int a = 3;int b = 7;int c;printf("交换前,a=%d,b=%d\n", a, b); // a=3,b=7c = a;a = b;b = c;printf("交换后,a=%d,b=%d\n", a, b); // a=7,b=3return 0;
}
但如果需要用到函数,以下交换是行不通的
#include <stdio.h>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=7swap(a, b);printf("交换后,a=%d,b=%d\n", a, b); // a=3,b=7return 0;
}
这时候指针就有用处了
#include <stdio.h>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=3return 0;
}
2、用一个函数实现并得出两个整型变量的和与差
#include <stdio.h>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,差是4return 0;
}