小談C言語構造体の点演算子(.)矢印演算子(->と)の違い

679 ワード

多くの場合、構造体を対応する符号化する場合、 ( . )ではなく ( -> )であることが発見される.では、この2つの間の使用には何か違いがありますか?
同じ点:両方が二元オペレータで、右側のオペランドはメンバーの名前です.異なる点:点演算子(.)てんえんざんし(.)の左の操作数は、結果として構造の である.矢印演算子(->の左側のオペランドは、構造体を指す です.
例:
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;        //                ( -> )