实参与形参
约 397 字大约 1 分钟
2025-06-20
【代码】
#include<stdio.h>
#include<math.h>
/*
形参和实参的功能是作数据传送。
函数调用中发生的数据传送是单向的。
即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。
因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。
当形参和实参不是指针类型时,在该函数运行时,形参和实参是不同的变量,他们在内存中位于不同的位置,形参将实参的内容复制一份,在该函数运行结束的时候形参被释放,而实参内容不会改变。
如果函数的参数是指针类型变量,在调用该函数的过程中,传给函数的是实参的地址,在函数体内部使用的也是实参的地址,即使用的就是实参本身。所以在函数体内部可以改变实参的值。
*/
void swapByPointer(int *p, int *q){ //形参
//p,q内存的地址没有变,但是地址内的内容变了
//交换两个数主要目的是交换值不是交换地址
int temp;
temp = *p;
*p = *q;
*q = temp;
}
int main(){
int a = 10, b = 20;
swapByPointer(&a,&b); //主调函数中的是实参,有确定的值,这样才能把这些值传送给形参
printf("a=%d, b=%d ", a, b);
}
【运行结果】
a=20, b=10
--------------------------------
Process exited after 0.05185 seconds with return value 0
请按任意键继续. . .