1 #include<stdio.h>
2 #include<math.h>
3
4 /**
5 * 形参和实参的功能是作数据传送。
6 * 函数调用中发生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。
7 * 因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。
8 * 当形参和实参不是指针类型时,在该函数运行时,形参和实参是不同的变量,他们在内存中位于不同的位置,形参将实参的内容复制一份,在该函数运行结束的时候形参被释放,而实参内容不会改变。
9 * 如果函数的参数是指针类型变量,在调用该函数的过程中,传给函数的是实参的地址,在函数体内部使用的也是实参的地址,即使用的就是实参本身。所以在函数体内部可以改变实参的值。
10 */
11
12 void swapByPointer(int *p, int *q){ //形参
13 int temp;
14 temp = *p;
15 *p = *q;
16 *q = temp;
17 }
18
19 int main(){
20 int a = 10, b = 20;
21 swapByPointer(&a,&b); //主调函数中的是实参,有确定的值,把值传给形参
22 printf("a=%d, b=%d ", a, b);
23 }