當定義了一個結構體的時候,若是想要取出這個結構體中的成員的時候,須要使用->ios
struct stu { string name; int number; int classnumber; int gradenumber; };
若是定義了一個指針,讓這個指針指向這個結構體,經過這個指針 P 取出這個結構體中的內容,這時咱們用的符號時 .(點)。若是是用指針 *P的形式取出這個裏面的元素的話,這時咱們須要使用*P.(元素)spa
這裏的區別主要是:->意味着取地址。找到這個元素所在的地址,而後將這個元素取出來。.是在這個元素結構體中取出來這個裏面的元素。指針
#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; }
如上圖的四種表示方式,意思是同樣的。code
總而言之:blog
.是取的這個結構體中的元素。(我直接帶你出去玩)string
->是取的這個結構體中中元素的地址 所對應的元素。(這裏有點像是腦筋急轉彎。就是我先找到你家,而後再帶你出來玩)io