C语言简单指针应用题:
输入两个整数,按大到小输出它们
这段代码的作用是接收用户输入的两个整数,然后通过指针操作将较大的数和较小的数进行交换,并输出从大到小排列的两个数。
使用指针变量p1,p2和temp,p1对应最终大值,p2对于最终小值,temp用于他们的转换。
#include <stdio.h>
int main()
{
int *p1,*p2,*temp,a,b;
printf("enter two interger number:");
scanf("%d,%d",&a,&b);
p1=&a;
p2=&b;
if(a<b)
{
temp=p1;
p1=p2;
p2=temp;
}
printf("MAX TO MIN IS %d,%d",*p1,*p2);
return 0;
}
详情解释
1. 首先定义了三个指针变量 p1 、 p2 和 temp ,以及两个整数变量 a 和 b 。
2. 提示用户输入两个整数,使用 scanf 函数接收用户输入,并将输入的值分别存储到变量 a 和 b 的地址中。
3. 接着,将变量 a 和 b 的地址分别赋值给指针变量 p1 和 p2 。
4. 通过条件判断 if(a<b) ,如果 a 小于 b ,则进行交换操作。交换操作是通过临时指针变量 temp 来实现的,先将 p1 的值赋给 temp ,再将 p2 的值赋给 p1 ,最后将 temp 的值赋给 p2 。这样就实现了指针所指向的地址的交换,也就是将较大数和较小数的地址进行了交换。
5. 最后,输出从大到小排列的两个数,即 *p1 和 *p2 ,分别对应较大数和较小数。