上一文討論了C語言:任意輸入兩個整數,交換并輸出(合集)。
企業(yè)建站必須是能夠以充分展現企業(yè)形象為主要目的,是企業(yè)文化與產品對外擴展宣傳的重要窗口,一個合格的網站不僅僅能為公司帶來巨大的互聯網上的收集和信息發(fā)布平臺,創(chuàng)新互聯面向各種領域:成都除甲醛等成都網站設計公司、網絡營銷推廣解決方案、網站設計等建站排名服務。但隨著進一步學習,會遇到考察不同小細節(jié)的新奇題目。是值得大家更深刻的去辨析的。
感興趣可以直接去學習。
C語言:任意輸入兩個整數,交換并輸出(合集)
本文直接補充(錯誤辨析版)地址交換這種特殊情況,為什么不去直接修改上一篇文章呢?因為我想水一篇!但是質量可不水!hahaha
(錯誤辨析版)地址交換,強調與地址的交換而不是地址的傳遞!這是不能完成數值交換的本質原因!
#includevoid swap(int *a,int *b);
int main()
{
int i,j;
scanf("%d%d",&i,&j);
int *p=&i,*q=&j;
swap(p,q);
printf("%d%d\n",*p,*q);
return 0;
}
void swap(int *a,int *b)
{
int *t;
t=a;a=b;b=t;
}
問輸入10 5后程序輸出什么樣的結果?小編做這題時,自信慢慢,喲~考察指針的地址傳遞了,有了上次的教訓和學習,最終又填入了錯誤答案510!
理論實踐
其實是沒真正的明白其中的邏輯!將容易弄混的代碼放在一起,大家觀察比較!
第二個是可以實現交換的(地址傳遞)
#includevoid swap(int *a,int *b);
int main()
{
int i,j;
scanf("%d%d",&i,&j);
int *p=&i,*q=&j;
swap(p,q);
printf("%d%d\n",*p,*q);
return 0;
}
void swap(int *a,int *b)
{
int t;
t=*a;*a=*b;*b=t;
}
理論實踐
其實很容易看出來,是自定義swap中不同。
地址交換中swap定義了新的指針*t,而地址傳遞中swap定義了新的整形t(上一篇解釋過如有需要C語言:任意輸入兩個整數,交換并輸出(合集))。
為什么不能實現呢?
函數swap(int *a,int *b)的功能是實現*a和*b中兩個數據的交換,在主函數中調用swap(p,q)后,參形指針變量a和b分別指向i和j,在swap(int *a,int *b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒有發(fā)生變化,所以輸出結果仍為105。
其他視圖說明
兩個人從監(jiān)獄的窗戶往外看,一個看見了土地,一個看見了星星?!靷?/p>
希望對你有幫助,語言學習貴在堅持輸入和輸出!
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧