1. 程式人生 > >C 語言結構體之點運算子( . )和箭頭運算子( -> )的區別

C 語言結構體之點運算子( . )和箭頭運算子( -> )的區別

很多時候,在對結構體進行相應的編碼時,時而發現是用點運算子( . ),時而是用箭頭運算子( -> );那麼這兩者之間的使用有什麼區別麼?

相同點:兩者都是二元操作符,而且右邊的運算元都是成員的名稱。

不同點:點運算子( . )的左邊運算元是一個結果為結構表示式

              箭頭運算子( -> )的左邊的運算元是一個指向結構體指標

例如:

typedef struct          // 定義一個結構體型別:DATA
{
    char key[10];       // 結構體成員:key
    char name[20];      // 結構體成員:name
    int age;            // 結構體成員:age
}DATA;
    
DATA data;              // 宣告一個結構體變數
DATA *pdata;            // 宣告一個指向結構體的指標
    
// 訪問資料操作如下:
data.age = 24;          // 結構體變數通過點運算子( . )訪問
pdata->age = 24;        // 指向結構體的指標通過箭頭運算子( -> )訪問

如需轉載,請說明出處。謝謝!