C C struct 結構體定義 用法詳解

2021-10-10 18:26:09 字數 595 閱讀 3707

在c語言中,定義乙個結構體型別要用typedef :

typedef struct point point;

在宣告變數的時候就可以:point p1;

如果沒有typedef, 如:

struct point ;

在宣告變數的時候就必須用:struct point p1;

point是struct point的別名。

也可以省去point,如下:

typedef struct point;

在c++裡,用法比c語言簡單

struct point ;

定義了乙個結構體型別point,宣告變數時直接point p1;

如果使用typedef,又會造成區別

struct point p1;//p1是乙個結構體變數

typedef struct point p2; //p2是乙個結構體型別

在 c中,struct不能包含函式

在c++中,對struct進行了擴充套件,可以包含函式。

在c++中,之所以包含兩種定義方式,主要是為了相容c語言。

參考文章:

C C struct結構體宣告中的冒號

有些資訊在儲存時,並不需要占用乙個完整的位元組而只需佔幾個或乙個二進位制位,如協議包頭。因此為了節省儲存空間並使處理簡便,c語言又提供了一種資料結構,稱為 位域 或 位段 所謂 位域 是把乙個位元組中的二進位劃分為幾個不同的區域,並說明每個區域的位數。每個域有乙個網域名稱,允許在程式中按網域名稱進行...

結構體定義 結構體指標相關用法

結構體 是一種自定義資料結構。結構體的形式 struct 型別名 結構體的結尾必須加上分號 結構體的定義以及初始化 struct student 定義student資料型別 定義完成,其地位和內建型別一樣 int main struct student stu2 struct student stu...

結構體定義 typedef struct 用法詳解

typedef是型別定義的意思。typedef struct 是為了使用這個結構體方便。具體區別在於 若struct node 這樣來定義結構體的話。在申請node 的變數時,需要這樣寫,struct node n 若用typedef,可以這樣寫,typedef struct node node 在...