学习内容:
#include <stdio.h>
void Swap1(int x, int y) // x,y为形式参数
{
int tmp = 0;
tmp = x;
x = y;
y = tmp;
}
void Swap2(int *px, int *py) { //px,py为形式参数
int tmp = 0;
tmp = *px;
*px = *py; //"*"为解引用运算符
*py = tmp;
}
int main()
{
int num1 = 1;
int num2 = 2;
Swap1(num1, num2);//num1,num2是实际参数。
printf("Swap1::num1 = %d num2 = %d\n", num1, num2);
Swap2(&num1, &num2);//&num1,&num2是实际参数。
printf("Swap2::num1 = %d num2 = %d\n", num1, num2);
return 0;
}

本文详细解析了C语言中函数参数传递的两种方式:传值调用和传址调用。通过Swap1和Swap2函数的例子,展示了如何在函数内部改变实参的值。在Swap1中,形参x和y只是实参num1和num2的拷贝,函数调用后实参值不变。而在Swap2中,通过传址调用,函数内部直接修改了实参的值。总结指出,当需要在函数中修改实参时,需传递地址。
1162

被折叠的 条评论
为什么被折叠?



