結構體傳參
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 這叫做宣告了乙...