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({});