當定義了一個結構體的時候,如果想要取出這個結構體中的成員的時候,需要使用->
struct stu {
string name;
int number;
int classnumber;
int gradenumber;
};
如果定義了一個指針,讓這個指針指向這個結構體,通過這個指針 P 取出這個結構體中的內容,這時我們用的符號時 .(點)。如果是用指針 *P的形式取出這個里面的元素的話,這時我們需要使用*P.(元素)
這里的區別主要是:->意味着取地址。找到這個元素所在的地址,然后將這個元素取出來。.是在這個元素結構體中取出來這個里面的元素。
#include<iostream>
using namespace std;
struct stu {
string name;
int number;
int classnumber;
int gradenumber;
};
int main() {
struct stu student;
struct stu * p = &student;
p->classnumber = 7;
cout<<p->classnumber << endl;
cout<<(&student)->classnumber<<endl;
cout<<student.classnumber<<endl;
cout<<(*p).classnumber<<endl;
}
如上圖的四種表示方式,意思是一樣的。
總而言之:
.是取的這個結構體中的元素。(我直接帶你出去玩)
->是取的這個結構體中中元素的地址 所對應的元素。(這里有點像是腦筋急轉彎。就是我先找到你家,然后再帶你出來玩)
