C中的指针

#include"stdio.h"
void main()
{
int *p1,*p2,*p,a,b;
printf("input two numbers:");
scanf("%d,%d",&a,&b);
p1=&a;p2=&b;
if (a>b)
{p1=&a;p2=&b;}/*here you add p1 wei max*/
else {p1=&b;p2=&a;}
printf("a=%d\n\n",a);
printf("max=%d,min=%d\n",*p1,*p2);
getch();

}
在这个程序中,为什么要定义*p呀,但是也没有用到它呀,why?

怎么会没用到 这里就是: printf("max=%d,min=%d\n",*p1,*p2);

不知道LZ是不是刚刚学C语言? 我看这个题目只是想让我们验证一下 指针变量的用法而已。
定义指针变量*p1,*p2是用来放a,b的地址(就是指针),程序的目的是求最大值
如果(a>b)指针p1就指向a,p2指向b 反之(a<b)p1就只向b,p2就只向a。

注意最后打印的是指针*p1 p2* 而不是a和b :LZ你可以测试一下在写个语句就是把a和b打印出来printf("a=%d,b=%d\n",a,b);不管a,b大小都会原样输出,指针只是改变的了地址 没用改变a,b的值

【 if (a>b)
{p1=&a;p2=&b;}/*here you add p1 wei max*/
else {p1=&b;p2=&a;}】这个语句就是判断a,b大小而编写的。

不知道能不能帮的了你。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-12-01
定义指针时 一定要记得给指针赋值,否者会出现不可预料的错误,你这里没必要定义*p,你也说了程序中没有用到。既然没用到它 就千万不要乱定义,指针这东西很难控制的,你没给它赋值,他可能指向系统中的某个地方,而当你使用这个指针时,就很可能破坏原始值,严重的时候导致系统崩溃。
第2个回答  2009-12-01
不需要定义*p,定义了反而是多余的,如果你运行就会发现会出现警告信息
第3个回答  2009-12-01
你把*p去掉看看报不报错。不报错的话就说明白他是没有用的。不过我看好像真的是没什么用。