C語言 結構體

2022-09-10 16:36:28 字數 1482 閱讀 4744

title:結構體

date:2021-9-29

結構體的定義初始化

1、不使用typedef的結構體

以下例子中,不加typedef時,struct student 是結構體型別名

#include#include#includestruct student ;

int main() ;

*/ printf("學號: %d 姓名: %s 年齡: %d 體重:%d", stu.num, stu.name, stu.age, stu.weight);

return 0;

}

2、使用typedef的結構體

定義乙個新的型別

以下例子中,加了typedef,struct student是結構體型別名,student也是結構體型別名

student s中的s是結構體變數

#include#includetypedef struct studentstudent;

typedef int int32;

int main()

3、結構體陣列
#include#includetypedef struct studentstudent;

int main(),};

s[0].number;

s[0].score;

s[1];

student* p = s;

printf("%d",s[0].score);

printf("%d",(*p).score);

printf("%d",p->score);

return 0;

}

結構體中位元組對齊原則

按照最長的成員對齊:結構體中預設以所佔位元組最長的成員劃分。例如,乙個結構體中 int 佔4個位元組最長,則按 4位元組作為排列長度

結構體預設按最長位元組對齊,也可認為規定對齊的最長長度

#include#include#include// #pragma pack(2) 規定在這個範圍裡的結構體按長度 2 對齊

#pragma pack(2)

typedef struct student student;

#pragma pack(2)

int main()

結構體定義的原則:保證結構體位元組對齊
#include#include#pragma pack(2) /*指定按2位元組對齊*/

typedef struct a a;

#pragma pack() /*取消指定對齊,恢復預設對齊*/

typedef struct b b;

int main() /*6

8*/

C語言結構體

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

C語言 結構體

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

c語言 結構體

1 定義結構體 c語言允許使用者自己建立不同型別資料組成的組合型的資料結構 struct 結構體名 1 結構體的型別不是只有一種,可以根據需要設計許多種,如struct student struct worker等 2 結構體的成員可以是另一結構體的成員,注意的是引用此成員的方式 2 定義結構體變數...