c语言指针输出两个数的最大值和最小值,并求和,有些不清楚这样写为什么不行。
生活随笔
收集整理的這篇文章主要介紹了
c语言指针输出两个数的最大值和最小值,并求和,有些不清楚这样写为什么不行。
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
網上看到一個帖子,居然自己找不出原因。
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;
這句話去掉就可以了。原因竟然自己不知道。
、
有個大哥是這樣 回答的。
s被初始化成空指針,后面的交換賦值用到了s,這時的s是空指針,賦值操作根本不知道要把數據放到哪里。
?
總結
以上是生活随笔為你收集整理的c语言指针输出两个数的最大值和最小值,并求和,有些不清楚这样写为什么不行。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu : 未找到 ‘nm-too
- 下一篇: c语言字符串详细