第602章:什麼朋友這麼有錢?
第二天上午,程式設計課。
“今天我們講指標,這是C語言裡最重要的概念之一,也是很多同學覺得最難理解的部分。”
韓濤坐在講臺上,打出一段程式碼。
“指標是什麼?簡單來說,指標是一個變數,它儲存的是另一個變數的記憶體地址。”
“打個比方,你去酒店,服務員不會把行李直接搬到你房間,而是給你一張房卡,房卡上寫著房間號,你拿著房卡找到對應的房間,開啟門進去,行李就在裡面。”
“指標就是那張房卡,房間號是記憶體地址,房間裡的行李就是變數的值。”
“好了,接下來你們自己在電腦上操作一下。”韓濤拍了拍手,“定義一個整數變數,然後定義一個指標指向它,透過指標修改它的值,然後打印出來看看效果。”
機房裡響起鍵盤敲擊聲。
林川按照要求寫了幾行程式碼,編譯執行,螢幕上輸出預期的結果。
坐在他旁邊的阮英傑盯著螢幕看了半天,火急火燎道:“定義了變數,也定義了指標,也賦值了,怎麼輸出結果不對呢?”
“少了取地址符。”林川提醒道:“int *p = 你寫成了 int *p = a;”
“哦哦哦,忘了忘了,&是取地址,*是取值,對吧?”
“嗯。”
“這玩意兒咋這麼繞呢……好難理解。”
阮英傑改了程式碼,重新編譯執行,螢幕上輸出了正確的結果:“臥槽!出來了出來了!”
指標的概念講完之後,韓濤又往下推進了幾個知識點。
“接下來我們講一下陣列和指標的關係,陣列名在大多數情況下可以看作是一個指向陣列首元素的常量指標……”
“比如你定義一個 int arr【5】 = {1,2,3,4,5};,那麼 arr 就等價於 &arr【0】。”
“所以你可以用 *(arr+2) 來訪問 arr【2】 的值,這兩種寫法在底層是等價的。”
阮英傑聽得一頭霧水,對林川說道:“這玩意怎麼越講越抽象了?”
林川在鍵盤敲了幾下,螢幕上寫了一段示例程式碼,把陣列的幾種訪問方式並列展示出來,註釋寫明每一步的含義。
阮英傑湊過來看了好一會,恍然大悟:“哦~~原來是這樣,arr 本身就是一個地址,所以可以直接用指標的方式去操作它。”
林川:“嗯。”
“你這些註釋寫得也太清楚了,比老師講的效果好。”阮英傑感慨道。
旁邊幾個同學聞言,也湊了過來。
“我看看我看看……臥槽,這注釋寫得也太清楚了吧?”
一個滿臉青春痘的男生盯著螢幕,忍不住念出聲,“arr本身就是一個地址,所以arr+1就是下一個元素的地址……原來是這樣,我之前一直沒搞明白為什麼陣列名可以直接當指標用。”
”。了神走就著聽著聽我語些那的說師老,了多解理易容的講師老比“,頭點著跟學同個一另
”。覺的開頓塞茅種有,釋注這川林看,實確“
”?吧了師老當以可都,平水這“
。來起論討語一我言一你,前腦電的川林在圍人幾
。上臺講到傳靜
。幕螢向看腰彎,後川林到來,來下走上臺講從,鼠下放濤韓
”?的寫己自你是……釋注這“:道口開,會一了看
”。嗯“
”?言語C過學前之你“








