C語言筆記 結構體

2021-09-29 21:48:32 字數 2558 閱讀 4608

第一種:只對結構體進行宣告

struct 結構體名

struct student

;

第二種:在宣告型別時同時定義變數

struct 結構體名字

變數名列表;

struct student

student1,student2;

第三種:不指定型別名直接定義結構體型別變數

struct

變數名列表;

struct

student1;

第一種最常用,第二種與第一種作用相同,與第一種相比,人們常常把結構體的宣告與定義分別放在不同地方,以使程式結構清晰,便於維護。第三種基本不用,第三種指定乙個無名結構體,不能使用此結構體去定義其他結構體變數。

結構體的定義常常與typedef一起使用,使得結構體的表達更加簡練。

typedef

struct student

std;

//定義結構體變數

std student1;

struct student student2;

//前者與後者一樣

#include

typedef

struct student

std;

intmain()

;//引用方式為:結構體變數名.成員名

printf

("%s was %d years old!\n"

,student1.name,student1.age)

;system

("pause");

}

存放結構體變數的陣列。一般定義結構體陣列時,先宣告乙個結構體型別,然後再定義此型別定義結構體陣列。

#include

typedef

struct student

std;

intmain()

,,};

for(i =

0; i <

3;i++

)printf

("%10s was %d years old!\n"

,student[i]

.name,student[i]

.age)

;system

("pause");

}

輸出為

xiaoming was 10 years old! 

xiaoai was 12 years old!

xiaoliang was 18 years old!

結構體指標就是指向結構體變數的指標,乙個結構體變數的起始位址就是這個結構體變數的指標。如果把這個結構體變數的起始位址存放在乙個指標變數中,那麼這個指標就指向該結構體變數

#include

typedef

struct student

std;

intmain()

;//把student1結構體變數的起始位址存放到指標變數p中

//指標變數的基型別必須與結構體變數的基型別相同

std *p =

&student1;

printf

("%s was %d years old!\n"

,student1.name,student1.age)

;printf

("%s was %d years old!\n"

, p->name, p->age)

;//成員運算子" . "優先於" * " 運算子

printf

("%s was %d years old!\n",(

*p).name,

(*p)

.age)

;//上面三種用法等價

system

("pause");

}

#include

typedef

struct student

std;

std printf1

(std stu)

intmain()

; student1 =

printf1

(student2)

;printf

("%s was %d years old,the number is %d!\n"

, student1.name, student1.age, student1.num)

;system

("pause");

}

輸出為

xiaoming was 10 years old,the number is 24

!xiaoming was 15 years old,the number is 24

!

C語言筆記 結構體

在習慣複製貼上之後導致現在自己敲程式都成了問題。鏈結構體都不會敲了,於是痛定思痛,寫下這篇筆記,警示後 zi 人 ji 定義 struct 結構體名 一定要有分號,定義本身就是個語句的說例子 struct boo 定義名字是boo的結構體 和定義出一種新的型別差不多 上面這樣就定義出了個結構體,相當...

C語言筆記 結構體

struct mystruct 結構體名 注意一定要加 這是基本格式,其餘的見 筆記 define crt secure no warnings include include struct student 結構體型別宣告,注意最後一定要加分號 intmain 結構體變數 列印要乙個乙個來 prin...

c語言 結構體學習筆記

一般形式 struct 結構體名 示例struct student 注意最後的分號2.1.先宣告結構體型別,再定義該型別的變數示例 struct student student1,student2 2.2.在宣告型別的同時定義變數 一般形式 struct 結構體名變數名表列 示例struct stu...