C語言和C 語言中結構體的區別

2021-08-21 03:28:18 字數 1059 閱讀 3655

(1)c的結構體內不允許有函式存在,c++允許有內部成員函式,且允許該函式是虛函式。所以c的結構體是沒有建構函式、析構函式和this指標的。

(2)c的結構體

對內部成員變數的

訪問許可權只能是public,而c++允許public、protected、private三種。

(3)c的結構體是不可以繼承的,c++的結構體是可以從其他的結構體或者類繼承過來的。

(4)在c中定義結構體型別用typedef,如下:

typedef struct complex

complex;

則,可以這樣定義結構體變數

complex complex1;

但是如果不使用typedef,則必須這樣定義

struct complex complex1;

complex實際上就是struct complex的別名,另外這裡也可以不寫complex(就不能使用struct complex complex了)

typedef struct

complex;

但是在c++中,比較簡單

struct complex

定義結構體變數時直接使用

complex complex1;

(5)在c++中使用typedef的話,會造成區別:

struct complex

complex; //這裡complex是乙個變數

typedef struct complex2

complex2; //這裡complex2是乙個結構體型別

使用時對於complex可以直接訪問 complex.read,但是對於complex2則必須先定義結構體變數complex2 complex2_2,然後才能訪問complex2_2.read。

整理 C語言和C 中結構體的區別

struct stt c 1.struct stt ex 2.使用 typedef struct stt st 可以直接 st stt c 1.struct stt ex 2.stt ex 3.需要注意的是 struct student stu1 等價於student stu1 而非起了乙個別名 另...

const 在C語言和C 語言中的區別

const 在c語言和c 語言中的區別 1 c語言中的 const 是定義了乙個 const 變數,const 用來限定乙個變數是唯讀的,不具備寫的功能,即是不可變的 c 語言中的 const 則是定義了乙個常量 const int a 10 int arr a 在c語言中是錯誤的,因為在c語言中是...

結構體 C 和C語言中的結構體的區別

在c中定義乙個結構體型別要用typedef typedef struct student stu 於是在宣告變數的時候就可 stu stu1 如果沒有typedef就必須用struct student stu1 來宣告 這裡的stu實際上就是struct student的別名。stu struct ...