C語言基礎十 結構體 重點

2021-08-28 08:53:24 字數 1791 閱讀 2784

1.引入

現實世界中的物體要 抽象成 計算機語言中的型別才能被計算機識別

屬性---->資料型別

學生:學號       int

性別       char 

姓名       char name[20]

自定義型別:結構體、共用體、列舉

2.結構體

2.1定義格式

struct 結構體名

;「結構體名」:c語言合法的識別符號即可

資料型別 :c語言合法的資料型別

成員變數名:c語言合法的識別符號即可

例子:struct student

;struct student stu1;

struct student表示的是資料型別,stu1表示變數名 

struct student *stu1;stu1表示指標變數名,struct student表示指標變數要指向的資料型別。

2.2記憶體中的存放    

1.結構體型別所佔的記憶體是各成員變數的記憶體之和

ps:1.結構體分配的空間按變數的定義順序各自分配空間

2.記憶體對齊,與最長的對齊或者4的整數倍取乙個最小

2.3結構體變數的引用

struct student stu1;

1.結構體型別名.成員變數名

stu.no=100;

int b=stu.no;

struct student *p;

2.結構體變數名->成員變數名

1)p=&stu1;

2)p=(struct student *)malloc(sizeof(stu1));

p->no=10;

例:#include

#include

#include

struct student

;int main()

2.4結構體的初始化

1.對前面順序的n個進行初始化

struct student stu1=;

2.對任意進行初始化

struct student stu1=;

3.結構體陣列初始化化

struct student stu[5]=,{},{},{},{}  };

2.5 struct 

a,b,c;

a,b,c為變數名,型別為 struct ;

typeof(a) d;

3.聯合體

union 共用體名

;例:union a

;聯合體分配的空間是最大資料型別長度的空間。

#include

union a

;int main()

大端模式:低位址存高位元組的內容,高位址存低位元組的內容

小端模式:低位址存低位元組的內容,高位址存高位元組的內容

4.列舉

把乙個變數所有可能的值列舉出來

定義:enum 列舉名;

ps:1.列舉的值預設為乙個整型常量,預設處理為0,1,2,3....

2.列舉常量mon=4是錯誤的的,不可對它進行改變

3.enum day;那麼one後面對應的整型常量就應該為9  10 ...

#include

enum weekday;

enum day;

int main()

ex1.寫乙個**,判斷是大端模式還是小端模式?

ex2.從螢幕上輸入5個學生成績、學號、姓名,按成績大小輸出學生的成績、姓名、學號

struct student

;1.用scanf輸入 struct student stu[5];

2.排序

3.輸出

C語言基礎結構

一.順序結構程式設計 1.1格式化輸入輸出函式 printf函式以及scanf函式 includeint main 執行結果 1.2字元資料的輸入輸出 putchar函式以及getchar函式 includeint main 執行結果 aa 1.3 if語句 1.3.1if 表示式 判斷表示式是否成...

C語言基礎(十) 預處理

預處理就是在編譯之前所做的事情,所以也叫預編譯,主要有巨集定義 檔案包含處理和條件編譯。巨集定義指令是指用乙個指定的識別符號代表乙個字串,可以減少程式中重複書寫某些字串的工作量,使用巨集可以達到 一改全改 的 規範。巨集定義主要分為不帶引數的巨集定義 和 帶引數的巨集定義。不帶引數的巨集定義 def...

C語言基礎(十) 預處理

標頭檔案包含 條件編譯 作用 文字替換 提高 的可讀性 示例 1 define pi 3.1415926帶參巨集沒有引數型別 也沒有返回值型別 可以接受任意型別的引數 本質是替換 沒有任何檢查 示例 2 define add a,b a b在示例 2 中需要考慮優先順序問題 include defi...