当前位置: 代码迷 >> C语言 >> 此程序是什么错误?
  详细解决方案

此程序是什么错误?

热度:262   发布时间:2006-02-05 03:17:00.0
此程序是什么错误?
程序如下:
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 其中负号代表什么意义

不知哪位高手能解答我的问题?

谢谢了!



----------------解决方案--------------------------------------------------------

B的数值没有付,是随机的.


----------------解决方案--------------------------------------------------------
C语言中地址通常用4位16 进制数表示,非10进制
----------------解决方案--------------------------------------------------------
  相关解决方案