C語言 Structures 結構體

2021-10-05 10:18:39 字數 3427 閱讀 7110

學生黨,課堂筆記加知識整理。若有不足勿噴!?。
ps. 補充關於union ,並將其與 structures 比較。

當進行學生資訊錄入的時候,我們會需要id ,name ,gender ,major ,start year等等資訊,而這些資訊,有的是 int 型別, 有的是 string 型別等等,這時就需要使用結構體,把這乙個學生的資訊放在乙個結構體中更好的錄入。同樣的,在銀行中, 關於乙個客戶的銀行賬戶資訊 , 圖書館中, 一本書的資訊 等等,都會用到結構體的概念。

下面就讓我們一起了解一下如何寫結構體吧~

struct

<

struct

-type>

;//一定要注意,結構體最後有乙個「 ;」。

具體例項:

struct date

;

struct studentgrade

;

//基本語法

<

struct

-type>

;

具體例項:

//如上一點的具體例項,假設我們已經定義過乙個struct studentgrade。

struct studentgrade st1,st2;

//這裡這個struct不可以少。

當然,還有一種方法。

struct studentgrade

str1,str2;

//相當於struct studentgrade st1,st2;

//呼叫方法。

<

struct

-vatiable>.;

具體例項:

//仍舊是之前所宣告定義過的 struct studentgrade 類。

//這裡我就以st1 為例,只寫 main 函式裡的吧~

strcpy

(str1.name,

" xiao xin ");

strcpy

(str1.course,

" programming in c ");

str1.lab=

100;

str1.homework=

100;

str1.exam=

100;

//當然如果只是想初始化的話可以

struct studentgrade str3=

;

**既然都到這裡了,不用str2豈不是辜負了它!**已經有了str1,又懶於編資料,那我們可以用struct-to-struct 去定義str2。

//很簡單的一句

str2=str1;

//str1 的內容就被完美複製給了 str2,很棒吧。

哼,話不多說,來,上例子:

struct point

p;struct line

l;struct ********

t;//賦值方法

intmain()

用表示就是:(以下來自最帥老師的ppt)

//對,還是這個結構體,害,就是好用。

struct studentgrade

;int

main()

struct ********

t;//這樣是分開來寫,但是想想,它們型別都相同,不就符合陣列嘛!

struct ********2

t2;//賦值

intmain()

;error

}

我又要把我帥氣老師的ppt圖搬過來了。

1.通訊錄排序:

}

時間換算:

}與結構體進行比較:

結構體占用的記憶體大於等於所有成員占用的記憶體的總和(成員之間可能會存在縫隙),共用體占用的記憶體等於最長的成 員占用的記憶體。共用體使用了記憶體覆蓋技術,同一時刻只能儲存乙個成員的值,如果對新的成員賦值,就會把原來成員的值覆蓋掉。

發現的一些比較詳細且好的,關於結構體和聯合體的文章推薦:(侵刪)

c結構體,菜鳥教程

c語言結構體完結(zw1996原創)

結構體&結構體陣列(pl002原創)

c/c++中的聯合體union介紹(會意原創)

C語言 結構

結構 結構是乙個或多個變數的集合,這些變數可能為不同的型別,為了處理的方便而將這些變數組織在乙個名字之下。結構的宣告方式 宣告乙個結構 struct point 宣告三個結構,類似與int a,b,c struct a,b,c 給結構賦初值 struct point maxpt 結構取值 結構名.變...

C語言結構

1 任何乙個c語言程式都必須包括以下格式 main 這是c語言的基本結構,任何乙個程式都必須包含這個結構。括號內可以不寫任何內容,那麼該程式將不執行任何結果。2 main 在c語言中稱之為 主函式 乙個c程式有且僅有乙個main函式,任何乙個c程式總是從main函式開始執行,main函式後面的一對圓...

c語言結構

struct complex product 定義乙個新的結構用於存放結果 product.real x.real y.real x.imag y.imag product.imag x.real y.imag x.imag y.real 根據公式計算兩個複數之積 return product 返回...