/*前集体要:先看上一篇*/
/*本程序的含义是,将存在a,b中的数进行交换,如:本来a=1,b=2,交换后a=2,b=1*/
1 #include <stdio.h> 2 void main() 3 { 4 int a,b,temp; 5 int *p,*q; //定义指针变量,int是指针指向的变量类型,因为指向的是a,b等整型变量,所以必须一致,将浮点型改为整型。 6 p=&a; //p为地址,&为取地址符。将变量a的地址赋给p 7 q=&b; //同上 8 printf("请输入两个整数(之间用空格隔开):\n"); 9 scanf("%d %d",&a,&b); //扫描,输入a和b的数值,并将其存入各自地址
10 printf("交换前分别为:\n"); 11 printf("%d %d",a,b); 12 temp=*p; //设置temp的原因就是防止数据丢失,好交换,细品。由第6、7行得出
//其实就是将a的数赋值给temp,存起来
13 *p=*q; //*为取值符号,将p和q地址中的数各种取出
14 *q=temp; // 将存在temp(*p也是b)的值赋值给*q(b),实现了a和b的交换
15 printf("交换后为:\n%d %d",*p,*q); //将值取出打印出来
16 }
其实要实现a和b的交换用到指针完全是多此一举,但是以这样比较简单的形式可以较快的理解指针的概念
下面我写一个不用到指针的的交换输出
void main()
{
int a,b,temp;
printf("请输入两个整数(之间用空格隔开):\n");
scanf("%d %d",&a,&b);
printf("交换前分别为:\n");
printf("%d %d",a,b);
temp=a;
a=b;
b=temp;
printf("交换后为:\n%d %d",a,b);
}