有沒有會C語言的大佬幫忙做個程式的。

時間 2021-10-30 14:31:16

1樓:葉芝秋

這麼簡單的問題真不應該上知乎提問啊,自己不會可以學嘛,學不會可以使用搜尋引擎嘛。你這麼一問,有人答無人答還是一回事,等你看到了回答,可能這個問題早已被你拋諸腦後了。我覺得除非是那種能夠讓人長期思考或者分享出來比較有意義的問題,才應該上知乎提問。

總之我覺得,自己遇到乙個問題,首先要自己去學習,去探索和思考,等自己覺得自己翻閱的資料已經足夠但依然無法解決自己的疑問時,使用搜尋引擎搜尋一下近似話題,如果自己的疑問依然無法解決,再來提問。

對於你的問題,首先要告訴你,C語言是沒有引用的,那是C++的語法,不知道你是在哪本書或哪個人那兒學到的C語言的引用,建議趕快扔掉。

我們假設你問題中的變數都是int型別。交換兩個整數的方法有兩種,一種是借助第三個變數,一種是使用異或運算,這裡只講借助第三個變數的方法。

#include

void

swap

(int*a

,int*b

)int

main

()為什麼要使用指標,為什麼要傳遞變數的位址而不是變數的值?乙個簡單的變數(名字)包含了哪幾樣東西?當然是它的位址(它在記憶體中的位置,這是由編譯器和作業系統進行分配的,我們不必管)和它的值。

你可以這樣理解,乙個變數就是一段一定長度的記憶體的別名,這段記憶體中存放著乙個值。要想修改乙個變數的值,我們首先要知道這個變數在記憶體中的位置(長度那些已經由變數型別確定)。對於乙個區域性變數(只在當前的作用域內可見),在當前作用域內,我們可以直接由變數的名字得到它的位址從而修改它的值。

而如果將它作為引數傳遞給另乙個函式,傳遞的只是它的值,相當於把它copy乙份送過去,被呼叫的函式本身並不知道它的位址,不知道它在記憶體中的哪個位置。因此,我們要顯式地傳入它的位址,才能在另乙個作用域修改它的值。

如果依然不懂,那麼建議題主先自行學習C語言指標和函式部分的內容。

方法二,傳入值,這就需要借助巨集的力量了。

#include

#define swap(a, b) ()

intmain

()至於巨集,那可得花一番功夫進行學習了。

有沒有大佬幫忙參考一下還有沒有漏掉的,有點超預算了,哪方面有可以節省的地方幫忙看看,謝謝

深海魷魚絲 搭配上11410f搭b560,記憶體用3200,10400f搭h410或者b460就好,記憶體用2666就可以,不建議10代U配5系主機板,具體評測 2666提公升到3600,遊戲效能提公升有多大?有必要公升級B560嗎?b560電競之心記憶體超頻測試 嗶哩嗶哩 https b23.tv...

有沒有懂法律的大佬幫忙回答一下

狗頭狗腦狗尾巴 這事不用著急,人沒事就好。定了責走保險,保險公司會按流程賠付的,不過時間要的長。不要去催對方,沒用的。說直白點現在是你和保險公司的事,按定責比例你賠修車錢,保險賠你方損失費用。賠你的錢扣除修車錢和墊付的檢查費怕也沒多少了,必竟你方主責得承擔大部分費用。打個比方 定責你七他三,車禍總損...

有沒有大佬幫忙分析一下王承渲後邊會怎麼發展?

hihihi 我在之前回答過,在這個公司其實不容樂觀,除非有楊超越和蔡徐坤帶紅的命。hihihi 如何看待 青春有你 2 總決賽王承渲沒有出道?楊天真說過,李現走紅後並沒有抓住熱度去接工作,而是去學日語,英語,去健身房。為下次工作做準備。最近我微博被渲言cp刷屏,渲真的要感謝青春有你,能交到喻言這樣...