宣告乙個結構體型別:
struct 結構體名
{成員表列};
定義結構體變數的方法:
(1)先宣告結構體型別再定義變數名。 在定義了結構體變數後,系統會為之分配記憶體單元.
例如:struct student student1,student2;
(2)在宣告型別的同時定義變數,例如:
struct 結構體名
{成員表列
}變數名表列;
3) 直接定義結構體型別變數,例如:
struct
{成員表列
}變數名表列;
即不出現結構體名。
結構體變數的引用:
(1)不能將乙個結構體變數作為乙個整體進行輸入和輸出。引用結構體變數中成員的方式為:
結構體變數名.成員名
(2) 如果成員本身又屬乙個結構體型別,則要用若干個成員運算子,一級一級地找到最低的一級的成員。只能對最低階的成員進行賦值或訪問以及運算。
(3) 對結構體變數的成員可以像普通變數一樣進行各種運算(根據其型別決定可以進行的運算).
(4) 可以引用結構體變數成員的位址,也可以引用結構體變數的位址。結構體變數的位址主要用作函式引數,傳遞結構體變數的位址。
結構體變數初始化:
struct student a=;
定義結構體陣列:
struct student
;struct student[3];
或者直接定義乙個結構體陣列
struct
;stu[3];
結構體陣列初始化:
struct student
,,};
或者:
struct student
; stu[2]=, };
乙個結構體變數的指標就是該變數所佔據的記憶體段的起始位址。可以定義乙個指標變數,用來指向乙個結構體變數,此時該指標變數的值是結構體變數的起始位址。指標變數也可以用來指向結構體陣列中的元素.
以下3種形式等價:
① 結構體變數.成員名
②(*p).成員名
p->成員名
「->」稱為指向運算子
「.」稱為成員運算子
應用:
#include
#define n 3
struct student
;//struct student stu[5];
void input(struct student *p,int n)
C語言結構體
1.1.1 結構概念 1 結構存在的意義 存在是合理的,許多事物的存在是在不斷解決問題引入的,當然有更好的方法出現時改變也是合理的。在實際問題中,一組資料往往具有不同的資料型別。例如,在學生登記表中,姓名應為字元型,學號可為整型或字元型,年齡應為整型,性別應為字元型,成績可為整型或實型。顯然不能用乙...
c語言 結構體
1 定義結構體 c語言允許使用者自己建立不同型別資料組成的組合型的資料結構 struct 結構體名 1 結構體的型別不是只有一種,可以根據需要設計許多種,如struct student struct worker等 2 結構體的成員可以是另一結構體的成員,注意的是引用此成員的方式 2 定義結構體變數...
C語言 結構體
以前學過的基本資料型別有int型 儲存整形資料 float型 儲存浮點型資料 char型 儲存字元型資料 這些都是不能拆分的基本資料型別,而結構體也是一種資料型別,它是一種構造型別,是可以進行拆分的。結構體裡可以儲存整形資料 浮點型資料 字元型資料.相當於把基本資料型別整合到結構體裡 結構體命名 s...