C語言結構體傳值 通過指標進行傳值

2022-05-21 13:09:09 字數 1230 閱讀 4210

結構體的傳值方法一共有三種形式,通過傳遞結構體傳遞指標

傳遞結構體自身引數

。傳遞指標的方式與另外兩種方法最大的不同就是傳遞的實際上是結構體的位址,在傳值的過程中,指標需要進過初始化分配記憶體(也就是使用malloc()函式分配空間給指標)

來看看以下**:

有兩個點需要注意:

(1)在方法設定型別的時候 是乙個struct book 型別,同時還是乙個指標的型別,可以說(struct book && pointer型別)

(2)在**的32,33行處,宣告了乙個struct book &&pointer型別的時候,一定要對指標型別做一次記憶體分配

1/*2

*該例項程式用來顯示如何在方法體中傳遞結構體引數

3該傳遞引數的方法是通過指標的形式對引數進行傳遞

4getinfo()方法用於對結構體指標進行賦值操作

5showinfo()方法用於對結構體進行輸出 6*/

7 #include 8 #include 9

#define max_size 2

10#define max_title_size 30

11#define max_author_size 30

12//

構造乙個book 型別的結構體

13/*

14*title 為char型別

15author char 型別

16price float 型別

17*/

18struct

book

19;

25/*

26宣告getinfo() showinfo()方法

27*/

28struct book * getinfo(struct book *lib);

29struct book * showinfo(struct book *lib);

30int

main()

3138

struct book * getinfo(struct book *lib)

3948

struct book * showinfo(struct book *lib)

49

執行結果為:

C語言 函式傳參 傳值 傳指標 傳指標的指標

本文參考這兩篇文章 文章 一 文章二。在學習資料結構中建立單鏈表的時候,疑惑 已經定義了node,用到結構體指標的時候直接用 node就好了,為什麼還要再定義乙個 linklist呢,為什麼傳參的時候又要用linklist l呢?下面我們就來循序漸進,由淺入深來解決問題,這裡舉兩個例子作為比較。首先...

c 通過委託進行窗體傳值

窗體傳值,通俗來講就是兩個窗體的類之間的傳值。而通過委託來傳值,通俗來說就是將某個窗體的方法通過委託傳遞給另外乙個窗體,以實現窗體間的資訊交流。該demo使用winform實現,新建了兩個窗體,分別是form1和form2,form1裡有textbox控制項,通過鍵入文字資訊,以實現將文字資訊傳到f...

C 傳值 傳址 傳指標 傳引用

相關概念 c 三種傳遞引數方式 傳引數的值 稱值傳遞,簡稱傳值 傳引數的位址 稱位址傳遞,簡稱為傳址 和引用傳遞 稱為傳引用 相應的函式傳值呼叫,傳址呼叫和傳引用呼叫 形參 實參 函式定義時參數列中的引數稱為形式引數,簡稱形參 函式呼叫時參數列中的引數稱為實際引數,簡稱實參。實參和形參之間的資料傳遞...