C語言結構體初階

2021-10-10 12:23:22 字數 1410 閱讀 1158

結構體變數的定義和初始化

結構體成員的訪問

結構體傳參

結構是一些值的集合,這些值稱為成員變數。結構的每個成員可以是不同型別的變數。

struct tag

variable-list;

例如描述乙個學生:

typedef

struct stu

stu;//分號不能丟

結構的成員可以是標量、陣列、指標,甚至是其他結構體。

有了結構體型別,那如何定義變數,其實很簡單。

struct point

p1;//宣告型別的同時定義變數p1

struct point p2;

//定義結構體變數p2

//初始化:定義變數的同時賦初值。

struct point p3 =

;struct stu //型別宣告

;struct stu s =

;//初始化

struct node

n1 =

,null};

//結構體巢狀初始化

struct node n2 =

,null};

//結構體巢狀初始化

struct s s;

strcpy

(s.name,

"zhangsan");

//使用.訪問name成員

s.age =20;

//使用.訪問age成員

那該如何訪問成員。 如下:

struct stu

;void

print

(struct stu* ps)

intmain()

;print

(&s)

;//結構體位址傳參

return0;

}

結構體傳參不發生降維,一般傳指標。

struct s

;struct s s =

,1000};

//結構體傳參

void

print1

(struct s s)

//結構體位址傳參

void

print2

(struct s* ps)

intmain()

上面的 print1 和 print2 函式哪個好些?

答案是:首選print2函式。 原因:

函式傳參的時候,引數是需要壓棧的。 如果傳遞乙個結構體物件的時候,結構體過大,引數壓棧

的的系統開銷比較大,所以會導致效能的下降。

結論: 結構體傳參的時候,要傳結構體的位址。

C語言初階 函式

數學中我們常見到函式的概念。但是c語言中的函式是什麼呢?維基百科中對函式的定義 子程式 c語言中函式的分類 庫函式自定義函式 為什麼會有庫函式?開發效率高 穩定性好。這裡我們簡單的看看 www.cplusplus.com 簡單的總結,c語言常用的庫函式都有 自定義函式和庫函式一樣,有函式名,返回值型...

C語言結構體

1.1.1 結構概念 1 結構存在的意義 存在是合理的,許多事物的存在是在不斷解決問題引入的,當然有更好的方法出現時改變也是合理的。在實際問題中,一組資料往往具有不同的資料型別。例如,在學生登記表中,姓名應為字元型,學號可為整型或字元型,年齡應為整型,性別應為字元型,成績可為整型或實型。顯然不能用乙...

C語言 結構體

宣告乙個結構體型別 struct 結構體名 成員表列 定義結構體變數的方法 1 先宣告結構體型別再定義變數名。在定義了結構體變數後,系統會為之分配記憶體單元.例如 struct student student1,student2 2 在宣告型別的同時定義變數,例如 struct 結構體名 成員表列 ...