c语言实参与形参的区别

 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 }

 

posted @ 2021-03-02 11:24  sunshine233  阅读(227)  评论(0编辑  收藏  举报