/*前集体要:先看上一篇*/
/*本程序的含义是,将存在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);	
}

  

posted on 2021-03-27 09:03  7i7i  阅读(104)  评论(0编辑  收藏  举报