結構體相關知識總結

2021-10-05 13:51:23 字數 1467 閱讀 1306

結構體傳參

1.結構體的簡單認識

struct s

;int

main()

這是乙個最簡單的結構體傳參,先定義結構體 struct s 然後在主函式中賦值,列印。

2結構體進行傳參(傳值和傳址的區別)(以下有幾種不同的情況)

一.

struct s

;void

init

(struct s tmp)

intmain()

;init

(s);

printf

("%d %c %f"

, s.a,s.c,s.d)

;//0 0.00000//第二個%c //傳過去不改變s

return0;

}

輸出結果為:100 w 3.140000

0 0.000000

二.

struct s

;void

init

(struct s* ps)

intmain()

;init

(&s)

;printf

("%d %c %f"

, s.a,s.c,s.d)

;return0;

}

輸出結果為:100 w 3.140000

100 w 3.140000

總結:則傳址可以改變結構體內變數

3.列印結構體

一.傳值

struct s

;void

init

(struct s* ps)

void

print1

(struct s tmp)

intmain()

;init

(&s)

;//列印結構體

print1

(s);

//列印結構體時,可以直接傳s(傳值)

return0;

}

輸出結果為:100 w 3.140000

二.傳址

struct s

;void

init

(struct s* ps)

void

print2

(struct s* ps)

//等同於void print2(const struct s* ps)//防止ps被改變

intmain()

;init

(&s)

;//列印結構體

print2

(&s)

;//列印結構體時,可以直接傳s

//列印結構體時,傳址和s都行。

return0;

}

注:個人結合老師上課內容對結構體的認識,本人萌新可能有許多不到之處,望周正。

結構體相關知識

include include struct 關鍵字 struct student 可以看做將多種型別打包帶走,看做乙個包裹 int main 兩種定義方式。2 struct student str 初始化結構體 str.a 100 給結構體裡面的資料賦值 str.c b strcpy str.st...

結構體知識總結

struct b關於結構體,我們一定不會陌生,結構體可以說和類的用法類似,但是也有不同之處,總的來說,結構體的使用使我們可以更加方便的儲存和使用資料。我在上面就定義了乙個結構體,裡面有兩個元素,乙個是int型別的,乙個是char型別的,因此,結構體裡面可以放進去不同型別的資料,這跟結構體的空間開闢有...

結構體和聯合體相關知識總結

1.結構體和陣列都是聚合資料型別,它們之間有以下的區別 陣列是同種型別元素的集合,而結構體是相同或者不同的資料元素的集合。陣列名在傳參時會退化為乙個指標,但是結構體在作為函式引數時不會發生退化。陣列可以通過下標來訪問某個元素,而結構體是通過結構體的成員名來訪問成員的。struct a 這叫做宣告了乙...