冰楓論壇

標題: [C++] 點(.)與鍵頭(->)的使用規則 [打印本頁]

作者: whitefox    時間: 2023-6-14 17:19
標題: [C++] 點(.)與鍵頭(->)的使用規則
簡而言之,當變數是結構體(結構/類別)時,引用成員使用點(.);當變數是指向結構體的『指標』時,引用成員使用鍵頭(->)
  1. a->b;
複製代碼
可以視為
  1. (*a).b;
複製代碼
也就是『->』是『*』+『.』的語法糖(Syntactic Sugar)
用以下兩個例子比對使用『->』與『.』的差異
『.』:
  1. struct stu{
  2.     int  age;
  3.     stu* next;
  4. };
  5. int main(){
  6.     stu s1;
  7.     s1.age = 18;
  8.     return 0;
  9. }
複製代碼
『->』:
  1. struct stu{
  2.     int  age;
  3.     stu* next;
  4. };
  5. int main(){
  6.     stu* phead = (stu*)malloc(sizeof(stu));
  7.     phead->age = 18;
  8.     phead->next = NULL;
  9.     stu* p = phead;
  10.     return 0;
  11. }
複製代碼
可以看出兩個例子,本質上是一樣的

總結來說





歡迎光臨 冰楓論壇 (https://bingfong.com/) Powered by 冰楓