C語言中->和.的區別


當定義了一個結構體的時候,如果想要取出這個結構體中的成員的時候,需要使用->

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;
}

    如上圖的四種表示方式,意思是一樣的。

總而言之:

.是取的這個結構體中的元素。(我直接帶你出去玩)

->是取的這個結構體中中元素的地址   所對應的元素。(這里有點像是腦筋急轉彎。就是我先找到你家,然后再帶你出來玩)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM