原创 闫小林 C语言入门到精通 2020-12-31
收录于话题
#小林C++代码基础
95个
点击上方“C语言入门到精通”,选择置顶
第一时间关注程序猿身边的故事
作者
闫小林
白天搬砖,晚上做梦。我有故事,你有酒么?
C++通过指向结构体变量的指针引用结构体变量中的成员
C++中,一个结构体变量的指针就是该变量所占据的内存段的起始地址,指针变量也可以用来指向结构体数组中的元素。 C++提供了指向结构体变量的运算符->,例如:
p->num;//表示指针p当前指向的结构体变量中的成员num
p->num 和(* p).num 等价,同样,p->namep->name等价于(*p).name。
在C++中,以下3种形式等价:
结构体变量.成员名,如stu.num。
(*p).成员名,如( *p).num。
p->成员名,如p->num,->称为指向运算符。
p->n;//得到p指向的结构体变量中的成员n值。
p->n++;//得到p指向的结构体变量中的成员n的值,用完该值后使它加1。
++p->n;//得到p指向的结构体变量中的成员n的值,并使之加1,然后再使用它。
经典案例:C++指向结构体变量的指针。
#include<iostream>//预处理
using namespace std;//命名空间
int main()//主函数
{
struct Student{ //自定义结构体变量
int num;//学号
char sex;//性别
int age;//年龄
};
Student stu;//定义Student类型的变量stu
Student *point=&stu;//定义point为指向Student类型数据的指针变量并指向stu
stu.num=1001;//赋值
stu.sex='M';//赋值
stu.age=21;//赋值
cout<<stu.num<<endl;//输出学号
cout<<stu.sex<<endl; //输出性别
cout<<stu.age<<endl; //输出年龄
cout<<"--------"<<endl;
cout<<(*point).num<<endl;//输出学号
cout<<(*point).sex<<endl;//输出性别
cout<<(*point).age<<endl;//输出年龄
return 0; //函数返回值为0;
}
编译运行结果:
1001
M
21
--------
1001
M
21
--------------------------------
Process exited after 0.08501 seconds with return value 0
请按任意键继续. . .