1. 程式人生 > >C/C++ struct 結構體定義 用法詳解

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

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

typedef struct point {
    int x;
    int y;
}Point;

在宣告變數的時候就可以:Point p1;
如果沒有typedef, 如:
struct point {
    int x;
    int y;
};
在宣告變數的時候就必須用:struct point p1;
Point是struct point的別名。
也可以省去point,如下:
typedef struct {
    int x;
    int y;
}Point;

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

struct
Point { int x; int y; }; 定義了一個結構體型別Point,宣告變數時直接Point p1; 如果使用typedef,又會造成區別 struct Point { int x; int y; }p1;//p1是一個結構體變數 typedef struct Point { int x; int y; }p2; //p2是一個結構體型別

在 C中,struct不能包含函式
在C++中,對struct進行了擴充套件,可以包含函式。
在C++中,之所以包含兩種定義方式,主要是為了相容C語言。