C語言結構體 3 結構體定義變數及初始化

2021-10-04 13:25:44 字數 1449 閱讀 6330

當我們定義了結構體型別之後,可以使用結構體型別來定義變數,定義變數的格式的方式與基本資料型別定義變數一樣。假設我們定義了如下的結構體型別:

//定義結構體型別

struct

reader ;

我們可以用該結構體型別來定義變數,如下:

struct

reader

r1;

//定義結構體變數

那麼,我們可以在定義結構體變數的時候,對其進行初始化,如下:

//定義結構體變數

, 並初始化;

struct

reader

r1 = ;

完整的測試例子如下:

程式執行結果如下:

可以看到,我們在定義變數r1的時候,在後面接著賦值運算子「=」,然後,接著需要賦值的資料。在大括號中存放賦值的資料,每個資料之間是有逗號「,」分隔開。

我們還可以在定義結構體型別的時候就定義變數,同時對其進行初始化,如下:

//定義結構體型別

struct

reader

r1, r2;

此時,在定義struct reader結構體型別的時候,同時定義了變數r1和r2。而且,可以在定義變數的時候初始化,如下:

//定義結構體型別 //

定義結構體型別

struct

reader

r1 = , r2 = ;

此時,定義struct reader結構體型別的時候,定義了變數r1和r2,而且,給變數r2初始化資料。程式測試**如下:

程式執行結果如下:

可以看到,我們在定義sruct reader結構體型別的時候,定義了變數r1和r2,並且對它們進行了初始化。

在定義結構體型別的過程中,我們可以省略「結構體型別名」,但是,這樣定義的結構體型別就沒有名稱了,只能夠在定義結構體型別的時候定義變數。例如:

//定義結構體型別

struct

r1, r2 = ;

此時,定義了乙個結構體型別,但是,該結構體型別沒有名稱,所以,只能夠在定義結構體的時候,定義變數。可以在定義變數的時候進行初始化。這種結構體定義型別的方式不是很推薦使用,我們只需要知道有這樣的定義方式就可以了。在寫**的時候,我們都更應該給每個變數有乙個明確、準確的型別名稱。可以通過型別名稱和變數名稱,都可以知道定義這個型別和變數的一樣。這樣的**才是優秀的**。

C語言結構體定義

c語言結構體定義在我看來類似資料庫的表 如 include include struct st1 int id char name 30 char int score int main struct st1 s1 s1.id 1 strcpy s1.name,張三 s1.m s1.score 90 ...

C語言 結構體 定義

c語言允許使用者自己建立由 不同型別資料組成的組合型資料結構 成為結構體。struct student 宣告結構體 一般形式 struct 結構體名 定義結構體變數 1先宣告結構體型別 在定義 struct student student1,student2 2宣告的同時定義變數 struct st...

c語言結構體3之結構體巢狀

注意 1結構體內部再次定義乙個結構體 但是沒有建立結構體的例項 也就是說再次定義的結構體內部的變數會被當做母結構體的成員變數 1 structtianchao 2 11 12 13 voidmainww 14 24 25 structtianchao 26 b1 內部定義的第一種方式 35 stru...