三、指针变量作参数
基本类型作参数时,C语言使用“值传送”的方法,非基本类型则采用的是“地址传送”的方法。因此,上面的问题可以改成指针作参数,问题便迎刃而解。由此可知,前面章节讲到scanf()函数时,当输入int类型数据时,为什么要用&加在变量前。
#include <stdio.h>
void change(int *, int *);
int main(void)
{
int x, y ;
printf("请输入x和y的值:");
scanf("%d %d", &x, &y);
printf("\n前:x=%d, y=%d\n", x, y);
change(&x, &y); //调用函数交换数据
printf("\n后:x=%d, y=%d\n", x, y);
return 0;
}
void change(int *num1, int *num2)
{
int temp;
printf("\n前:*num1=%d, *num2=%d\n", *num1, *num2);
temp = *num1 ;
*num1 = *num2 ;
*num2 = temp ;
printf("后:*num1=%d, *num2=%d \n", *num1, *num2);
return ;
}
|