C 中的結構體

2021-09-13 17:20:56 字數 869 閱讀 6215

c++中的結構體關鍵字typedef可以直接省略,甚至不省略的話,還會提示你省略;原因:c語言的 struct 定義了一組變數的集合,c編譯器並不認為這是一種新的型別;c++中的struct是乙個新型別的定義宣告, 所以可以省略typedef, 定義變數的時候也可以省略struct, 而不用像c語言那樣沒使用typedef取新名字時, 就需要用"struct 結構體名"這種形式定義變數。

如果在結構體能夠完成的目的的情況下,就沒必要使用類;c與c++結構體中,前者不能有函式,後者可以有。

.與->運算子區別:訪問結構的成員時使用點運算子,而通過指標訪問結構的成員時,則使用箭頭運算子。也就是說,用結構體定義了乙個實體,那麼這個實體要引用他裡面的成員,就用 . 操作符,如果用結構體定義的是乙個結構指標,那麼要引用他裡面的成員就用->。

struct employeeemp;

點運算子.使用如下:

strcpy(emp.name, "curry_coder");

如果p_emp是乙個指標,指向資料型別為employee的物件,則要把值zara賦值給物件emp的name,需要使用箭頭運算子->,箭頭運算子->使用如下:

strcpy(p_emp->name, "zara");

struct作為資料結構的實現體,它預設的資料訪問控制是public的。而class作為物件的實現體,它預設的成員變數訪問控制是 private的。當你覺得你要做的更像是一種資料結構的話,那麼用struct,如果你要做的更像是一種物件的話,那麼用class。

struct a //定義乙個struct

;a a=; //定義時直接賦值

C 中的結構(結構體)

結構是可以包含資料成員和函式成員的資料結構,這一點和類一樣 下面我們講一下結構與類不同的地方 1.結構體是值型別,無需進行堆分配,類是引用型別 2.結構型別的變數直接儲存資料結構,而類型別的變數儲存對動態分配的物件的引用 3.類支援繼承,結構體不支援繼承 4.關鍵字簡單說下,類是class,結構體是...

C 中的結構體(C 入門)

什麼是結構體?簡單的來說,結構體就是乙個可以包含不同資料型別的乙個結構,它是一種可以自己定義的資料型別,它的特點和陣列主要有兩點不同,首先結構體可以在乙個結構中宣告不同的資料型別,第二相同結構的結構體變數是可以相互賦值的,而陣列是做不到的,因為陣列是單一資料型別的資料集合,它本身不是資料型別 而結構...

C和C 中的結構體

c c 結構體的區別 c中的結構體和c 中結構體的不同之處 在c中的結構體只能自定義資料型別,結構體中不允許有函式,而c 中的結構體可以加入成員函式。c 中的結構體和類的異同 一 相同之處 結構體中可以包含函式 也可以定義public private protected資料成員 定義了結構體之後,可...