三、指针变量作参数
基本类型作参数时,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 ;
- }
|