1.正确的用法(代码):
#include <stdio.h>
void swap(int *c,int *d)
{
int t=*c;
*c=*d;
*d=t;
}
int main()
{
int a=3,b=4;
swap(&a,&b);
printf("%d %d\n",a,b);
return 0;
}
解释:
1.1 其中的int c 声明的变量c是指向int类型变量的指针,赋值c=&a的含义是把变量a的地址存放在指针a中
1.2 *c的含义是“指针c指向的变量”不仅是指“c指向的变量所拥有的值”
其中
swap(&a,&b);
的运行过程如下:
int t=*a
如图
*c=*d
注意:其中 *d 在赋值语句右边时代表把 *d代表的值赋给左边变量,
其过程图解如下
*d=t;
其图解如下