C語言中->和.的區別

當定義了一個結構體的時候,若是想要取出這個結構體中的成員的時候,須要使用->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

相關文章
相關標籤/搜索