此程序是什么错误?
程序如下:main()
{
int *p1,*p2,*P,a,b;
scanf("%d,%d",&a,&b);
p1=&a;p2=&b;
if(a<b)
{p=p1;p1=p2;p2=p;}
printf("\na=%d,b=%d\n\n",a,b);
printf("max=%d,min=%d\n",*p1,*p2);
}
此程序语法无错误,如果运行时输入:3,9
则输出:a=3,b=9
max=9,min=3
如果运行时输入:7
则输出:a=7,b=28990
max=28990,min=7
程序运行时并不提示错误, b 的数值如何来的呢?为什么会这样呢?
又一个问题:如果在程序中加入输出变量地址语句:Printf("%d",&a);
为什么会输出一个负值: - 42 其中负号代表什么意义
不知哪位高手能解答我的问题?
谢谢了!