青少年编程知识记录 codecoming

C++中箭头指针的含义及用法

0.前言

c++中我们在一些程序中看到箭头 p—>stu 类似于这样的表示。今天就简单来解释一下点运算和箭头运算。



1.点运算

常见的点一般出现在结构体中,比如下面的代码:

#include<iostream>  using namespace std;  struct student{  	int name[100];  	int num;  	double chinese;  };  student s [10];      int main(){  	for(int i=0;i<5;i++){  		cin>>s.name;  	}  	return 0;  }

我们可以通过点运算符快速访问结构体成员变量。

比如下面这样:

#include<iostream>  using namespace std;  struct student{  	int name[100];  	int num;  	double chinese;  };  student s1;      int main(){  	s1.num=12;  	cout<<s1.num;  	return 0;  }





2.指针运算



指针运算用于结构体指针访问成员。

例子:

#include<iostream>  using namespace std;  struct student{  	int name[100];  	int num;  	double chinese;  };  student s1;   student *s2;   int main(){  	s1.num=12;  	cout<<"s1="<<s1.num<<endl;  	s2=&s1;  	s2->num=17;  	cout<<"s1="<<s1.num<<endl;  	cout<<"s2="<<s2->num<<endl;  	return 0;  }   /**   结果:  s1=12  s1=17  s2=17      */

而且也可以通过箭头函数快速访问结构体变量



3.简单总结

点运算是结构体变量访问其成员的操作符

箭头运算是结构体指针访问其指向的成员变量的操作符

(*s2).num 和s2->num是等价的

#include<iostream>  using namespace std;  struct student{  	int name[100];  	int num;  	double chinese;  };  student s1;   student *s2;   int main(){  	s1.num=12;  	cout<<"s1="<<s1.num<<endl;  	s2=&s1;  	(*s2).num=17;  	cout<<"s1="<<s1.num<<endl;  	cout<<"s2="<<(*s2).num<<endl;  	return 0;  }   /**   结果:  s1=12  s1=17  s2=17      */



(adsbygoogle = window.adsbygoogle || []).push({});

作者:亿万年的星光 分类:C++知识 浏览: