結構體是一些值的集合,這些值稱為成員變數,每個成員可以是不同的型別。
strut tag
variable_list;
例如描述乙個學生的資訊
struct stu
;//分號不能丟
例:匿名結構體型別
struct x;
結構體的成員可以是標量、陣列、指標、甚至是其它結構體
結構體成員訪問
struct
;struct stu s;//定義結構體變數
訪問結構體成員用以下的方法
struct s s;
strcpy(s.name,"zhangsan");//訪問name成員
s.age=20;//訪問age成員
struct s
s;//定義結構體變數
void print(stuct s* ps)
struct node
;
typedef
struct node
node;
struct b;
struct a
;struct b
;
struct point //型別宣告
p1;//宣告型別的同時定義變數p1
struct point p2;//定義結構體變數p2
//初始化:定義變數的同時賦初值
struct stu //型別宣告
;struct stu s = ;//初始
計算結構體大小
例:
int main()
結構體對齊規則
###結構體傳參
struct s
;struct s s = ,1000 };
//結構體傳參
void print1(struct s s)
//結構體位址傳參
void print2(struct s* ps)
int main()
結構體傳參時要傳位址原因是:函式傳參是需要壓棧,當傳遞結構體物件時,如果乙個結構體過大,引數壓棧時系統開銷過大,導致效能下降。
int main()
; printf("%d\n", sizeof(struct a));//位段a的大小是8
system("pause");
return
0;}
自定義型別
typedef型別 typedef 已有型別 新建型別 示例 typedef double area,volume typedef int number number i1 area a enum enum 列舉型別名 enum week 預設sun 0,可以比較 如果修改必須形如enum week...
自定義型別
下面列舉幾種c語言中常用的自定義資料型別 1.結構體型別 當描述乙個整型變數時,可以用int,描述字元型變數時,可以用char,但要描述乙個學生時,因為這個學生包含的資訊很多,比如姓名,性別,年齡等,不能通過單一的型別來描述,所以,這裡引入結構體型別,將某個事物的共有屬性集合在一起,宣告乙個結構體型...
自定義型別
列舉從字面意思理解就是將可能取的值一一枚舉出來,列舉型別沒有成員 可言,裡邊存放的是可能取值。列舉型別的定義 enum day enum color printf d n red printf d n green printf d n blue 執行結果 day和color都是定義的列舉型別,中的內...