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