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;        // 指向結構體的指針通過箭頭運算符( -> )訪問

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM