結構體中使用 箭頭 與 點 的區別

2022-06-17 18:30:11 字數 708 閱讀 3727

相同點:兩個都是二元操作符,其右操作符是成員的名稱。

不同點:點操作符左邊的運算元是乙個「結果為結構」的表示式;

箭頭操作符左邊的運算元是乙個指向結構的指標。

首先介紹一下c++中的結構。對於乙個結構來說,

struct mystruct

;如果有個變數mystruct s,那麼使用其中的成員元素時可以用

s.member_a = 1;

如果採用指標方法訪問,比如mystruct * ps,那麼同樣的訪問就必須使用如下形式:

(*ps).member_a = 1;

或者ps->member_a = 1;

c++中當定義類物件是指標物件時候,就需要用到->指向類中的成員;當定義一般物件時候時就需要用到"."指向類中的成員.......

例如:class a

如果定義如下:

a *p則:p->play()使用; 左邊是結構指標。

a p 則:p.paly()使用; 左邊是結構變數。

總結:箭頭(->):左邊必須為指標;

點號(.):左邊必須為實體。

struct *p;

*p->str 讀取的是指標str 所指向的物件的值;*p->str++先讀取指標str 指向的物件的值,然後再將str 加1(與*s++相同);(*p->str)++將指標str 指向的物件的值加1;*p++->str先讀取指標str指向的物件的值,然後再將p加1。

結構體成員的引用 (箭頭)和 (點)

關於結構體成員的引用有這樣的規律 箭頭 左邊必須為指標 注意其實不是箭頭而是兩個符號 點號 左邊必須為實體。那麼如果乙個結構體指標引用乙個成員,這個成員又是乙個結構體 並且是乙個實體 那麼如果要引用這個成員的成員要怎麼辦呢?經過實驗發現,依然遵循上面的規則即 箭頭左邊必須是指標,實體一定要用點號引用...

結構體中使用string

1.malloc只是負責申請一塊記憶體,沒有任何其他動作。2.直接宣告結構體或者new 乙個結構體指標,會呼叫預設建構函式。如果結構中包含類,同樣會呼叫成員類的預設建構函式。3.程式中的記憶體錯誤是因為使用malloc分配乙個結構體內存,但是string是乙個類。並沒有呼叫string的建構函式,所...

C和C 中使用結構體的一點區別

從學校畢業以後,開發東西幾乎全部是c 今天在linux用c程式設計,發現關於結構體在定義和使用的上的一點區別。至於結構體在c 有類的特性,這裡不做贅述,感興趣的朋友可以自己檢視c primer的相關章節。以前在c 中定義和使用結構體如下 definition typedef struct stude...