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

2021-10-10 08:15:38 字數 1293 閱讀 3201

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;而非起了乙個別名

另查閱資料知,某些c++標準中是把struct當作類來處理的,隱藏的建構函式可能具有private屬性。目前還沒遇到過這類問題,先做此tips以便查閱。

在寫鍊錶的時候常常會有一些約定俗成的寫法

typedef

struct qnode

qnode,

*queueptr;

qnode就是結構體qnode的別名,

*queueptr 是乙個結構體指標,相當於 int的 int *

意思是 queueptr ptr 等價於 qnode * ptr;

簡而言之,

有typedef

arr[i] 是乙個「別名」。

沒有typedef

arr[i] 真的是乙個陣列。

以上所有,都在下面這個demo裡了 需要自取

#include

#include

#include

#include

#include

#include

#include

using

namespace std;

template

<

class

t>

void

tra(t t1)

cout<}typedef

struct stu

stu,

*pstu,arr[10]

;struct stu2

arr2[10]

;void

myp(stu s)

void

myp(stu *s)

intmain()

cout<<

"there is no \"typedef\":"

int i=

0;i<10;

++i)

}

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

1 c的結構體內不允許有函式存在,c 允許有內部成員函式,且允許該函式是虛函式。所以c的結構體是沒有建構函式 析構函式和this指標的。2 c的結構體 對內部成員變數的 訪問許可權只能是public,而c 允許public protected private三種。3 c的結構體是不可以繼承的,c 的...

c語言和c 中struct的區別

1.雖然長的一樣,但是本質上型別不同 c語言中 struct是使用者自定義資料型別 udt c 中struct是抽象資料型別 adt 所以下面 struct he 在c裡面實際上資料型別為 struct he 所以定義乙個結構he變數都要 帶上struct.structhe a c語言 變數方式 而...

C語言和C 的區別

c和c 的關係 就像是win98跟winxp的關係。c 是在c的基礎上增加了新的理論,玩出了新的花樣。所以叫c加加。c和c 的區別 c是乙個結構化語言,它的重點在於演算法和資料結構。c程式的設計首要考慮的是如何通過乙個過程,對輸入 或環境條件 進行運算處理得到輸出 或實現過程 事務 控制 c 首要考...