很多時候,在對結構體進行相應的編碼時,時而發現是用點運算符( . ),時而是用箭頭運算符( -> );那么這兩者之間的使用有什么區別么?
相同點:兩者都是二元操作符,而且右邊的操作數都是成員的名稱。
不同點:點運算符( . )的左邊操作數是一個結果為結構的表達式;
箭頭運算符( -> )的左邊的操作數是一個指向結構體的指針。
例如:
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; // 指向結構體的指針通過箭頭運算符( -> )訪問
