#include <stdio.h>
void Swap(int *x, int *y);
int main(void)
{int a, b;printf("Please enter a,b:");scanf("%d,%d", &a, &b);printf("Before swap: a = %d, b = %d\n", a, b);Swap(&a,&b); /* 按地址调用函数Swap() */printf("After swap: a = %d, b = %d\n", a, b);return 0;
}
/* 函数功能:交换两个整型数的值 */
void Swap(int *x, int *y)
{int temp;temp = *x; *x = *y; *y = temp;
}
/*将指针x存储的值给temp,
然后交换指针x和y存储的值,
然后将temp赋值给y*/
知道变量的地址才能够达到修改变量的效果 ;
指针的作用:
将a和b地址分别传递给了x和y,然后通过“ * ”即用*x和*y来获得了 a 和 b的值。
而正是因为x和y被定义为指针,所以他们能够在获得一个地址的情况下通过“*”来得到地址对应的值
(因为是指针所以有这个特性)
指针的定义:
int *a;这里的 " * " 是一个类型声明的符号,并不是一个 解引用符号。