网上看到一个帖子,居然自己找不出原因。
c语言指针输出两个数的最大值和最小值,并求和,有些不清楚这样写为什么不行。
#include<stdio.h>
int main()
{
int *p,*q,*s,a,b;
s=NULL;p=&a;q=&b;
scanf("%d%d",p,q);
if(*p<*q)
{
*s=*q;
*q=*p;
*p=*s;
}
printf("最大值为:%d,最小值为:%d,和为%d",*p,*q,*p+*q);
return 0;
}
代码运行是不能通过的,因为这句话: s=NULL;
这句话去掉就可以了。原因竟然自己不知道。
、
有个大哥是这样 回答的。