指向結構體成員運算子 : (->) 從外部看是包含了一個解指標(*)所以要對指標進行操作
例如:
typedef struct
{
int data[20];
int length;
}Sqlist;
Sqlist
*L;
L->lenth;
//同樣是得到L中length的值
結構體成員運算子 : ( . )直接呼叫結構體中的某個成員
Sqlist L;
L.length; //直接呼叫L中length的值
L.data[3];
擴充套件資料:
結構體成員的點運算子(.)和箭頭運算子(->)的區別:
相同點:兩個都是二元運算子,其右運算子是成員的名稱。
不同點:點運算子左邊的運算元是一個“結果為結構”的表示式;箭頭運算子左邊的運算元是一個指向結構的指標。
如果一個函式的傳入引數是結構體,且需要該結構體作為返回值的時候,必須採用指標傳遞的方式,其中對結構體賦值必須使用箭頭運算子。
參考資料:
指向結構體成員運算子 : (->) 從外部看是包含了一個解指標(*)所以要對指標進行操作
例如:
typedef struct
{
int data[20];
int length;
}Sqlist;
Sqlist
*L;
L->lenth;
//同樣是得到L中length的值
結構體成員運算子 : ( . )直接呼叫結構體中的某個成員
例如:
typedef struct
{
int data[20];
int length;
}Sqlist;
Sqlist L;
L.length; //直接呼叫L中length的值
L.data[3];
擴充套件資料:
結構體成員的點運算子(.)和箭頭運算子(->)的區別:
相同點:兩個都是二元運算子,其右運算子是成員的名稱。
不同點:點運算子左邊的運算元是一個“結果為結構”的表示式;箭頭運算子左邊的運算元是一個指向結構的指標。
如果一個函式的傳入引數是結構體,且需要該結構體作為返回值的時候,必須採用指標傳遞的方式,其中對結構體賦值必須使用箭頭運算子。
參考資料: