C指標案例分析

2021-09-24 04:24:50 字數 880 閱讀 2723

#include

#include

#include

void read_slogan(file *fp, char **slogan)

}int main(void)

return 0;

}這段**來自《征服c指標》第四章4.2節4.2.1小節4-5**清單。從網上找的電子版《征服c指標》在這一塊有些錯誤。我看的那版電子版的《征服c指標》關於read_slogan寫的是void read_slogan(file fp, char *slogan),這裡的形參定義讓我迷惑了好一陣。後來看了書才發現電子版的書有錯誤。本來指針對新手來說就不太好理解,看了這本有錯誤的電子版《征服c指標》搞得我更糊塗了。這裡就來分析一下void read_slogan(file fp, char *slogan)中char *slogan為什麼不對。

這段**是在被呼叫函式read_slogan中分配記憶體並得到記憶體位址,然後通過被呼叫函式read_slogan把這塊區域返回給主呼叫函式main。在被呼叫函式read_slogan中分配的是字元陣列,要分配7個字元陣列,用for迴圈表示的,每一次迴圈分配乙個字元陣列,並返回這個字元陣列的位址。字元陣列的位址是一級指標。我們要把這7個一級指標返回給主調函式main,就需要在main函式中定義7個變數,由於這7個變數存放7個一級指標,而變數的級數是由他存放的內容的級數決定的,因此在main函式中要分配7個一級指標,也就是乙個有7個元素的指標陣列 char *slogan[7];,陣列的每乙個元素存放乙個一級指標。又因為是從被呼叫函式中去給這個陣列賦值,所以需要將這個陣列 char *slogan[7]的位址傳給被呼叫函式read_slogan。由於陣列存放的是一級指標,那麼陣列的位址就是二級指標。所以read_slogan的形參應該定義為二級指標,而不是錯誤的電子書上寫的那樣是乙個一級指標形參。

c 多型的案例分析

最近在研究c 中多型的應用 其中遇到些許的疑問與問題,但是最終的結果是不容置疑的,下面記錄下我的學習過程,以紀念本個知識點。首先,是從乙個案例開始的,題目大意是這樣的 設定乙個多邊形的公共類,然後再設定多個圖形的各個派生類,最後通過基類,根據多型的應用通過基類,求出所求圖形的面積 於是根據自己所學的...

C 事件 綜合案例分析

面試題 晚上貓大叫一聲,主人被驚醒,老鼠被下跑。用c 實現這個過程。這個題目中一共有三個物件 貓 主人和老鼠。這三個物件之間即不屬於is a.的關係,也不屬於has a.的關係,但三者又有相互聯絡。不能把主人和老鼠作為貓的成員變數出現,因為貓物件並不擁有主人和老鼠這兩個物件。不能在貓任何方法中例項化...

c指標經典案例 學習筆記01

案例一 已知兩個變數a,b,用c語言將他們的值進行交換?在沒有學習指標的是我們常規的思路是 include void swap int v1,int v2 int main 這裡編譯後執行的結果是 hello,world a 10,b 4 v1 10,v2 4 v1 4,v2 10 a 10,b 4...