很多次遇到這個struct的問題,今天在這裡簡單總結一下我的理解
一、struct在c 中的使用
1、單獨使用struct定義結構體型別
struct student stu1;
struct student stu2;
stu1.id=1;
stu2.id=2;
上面定義了乙個結構體型別struct student 和乙個結構體型別變數stu1。
所以有兩種定義結構體變數的方式:
一種是這就跟在結構體定義的後面(}之後),一種是用struct 結構體名 結構體變數名。
2、typedef:typedef作為c的乙個關鍵字,在c 和c++ 中都是給乙個資料型別定義乙個新的名字。這裡的資料型別包括基本資料型別(int, char等)和自定義的資料型別(struct)。
程式設計中使用typedef,其目的一般有兩個,乙個是給變數乙個容易記且意義明確的新名字,另乙個是簡化一些比較複雜的型別宣告。
所以有:
typedef struct student student;
student stu;
stu.id=1;
stu.name="zhangsan";
其中,typedef 給自定義型別struct student 起了乙個簡單的別名:student
所以student stu; 就等價於1中的struct student stu;
3、typedef 定義批量的型別別名
typedef struct student student1,student2,student3;
typedef定義了 3 個struct student 型別的別名
但是如果去掉了typedef,那麼在c++中,student1,student2,student3將是3個結構體變數
當然,如果,student 以後用不著,則可以省略student,如下所示功能與3相同。
typedef struct student1,student2,student3;
二、c++中的struct用法
1、
struct student stu;
stu.id = 1;
stu.name="";
定義了乙個student型別的結構體,還宣告了student型別的乙個結構體變數stu。
2、typedef
typedef struct student stu2;
stu2 s2;
s2.id=1;
s2.name="zhangsan";
上面 typedef 定義了乙個結構體型別 stu2,所有要給id賦值,必須先定義乙個結構體型別變數,如s2,然後才能s2.id =1;
3、struct 定義批量的結構體變數
struct student stu1,stu2,stu3;
定義了3個結構體變數
stu1,stu2,stu3
stu1.id =1;
stu2.id =2;
stu3.id =3;
struct結構體在c和c 中的差別
非常多次遇到這個struct的問題,今天在這裡簡單總結一下我的理解 一 struct在c 中的使用 1 單獨使用struct定義結構體型別 struct student stu1 struct student stu2 stu1.id 1 stu2.id 2 上面定義了乙個結構體型別struct s...
C 結構體 struct 詳解
陣列 array 它是一組具有相同型別的資料的集合。但在實際的程式設計過程中,我們往往還需要一組型別不同的資料,例如對於學生資訊登記表,姓名為字串,學號為整數,年齡為整數,所在的學習小組為字元,成績為小數,因為資料型別不同,顯然不能用乙個陣列來存放。在c語言中,可以使用 結構體 struct 來存放...
C語言結構體struct
定義 定義結構體,要定義兩次,1定義型別,2定義變數 1定義時 不分配記憶體,和 define一樣 定義結構體的樣式,叫什麼名字,成員,句式 2再定義 分配記憶體 用著個樣式定義變數 與typedef有點像 3如果定義的是 p指標,只表示出此結構體 變數的起始位址 struct a struct a...