在 C++ 中,p->name 和 p.name 的效果并不相同。它们用于不同的情况,取决于你是否通过指针访问结构体成员。

ops/2024/10/18 18:15:53/

p->name:这是指针访问运算符(箭头运算符)。当 p 是一个指向结构体的指针时,用 p->name 来访问结构体的成员。

student* p = &stu; // p 是一个指向 student 类型的指针
cout << p->name << endl; // 通过指针 p 访问 name 成员

p.name:这是点运算符。当 p 是一个结构体对象而不是指针时,用 p.name 来访问结构体的成员。

student stu = { "zhangsan", 3, 60 }; // stu 是一个 student 类型的对象
cout << stu.name << endl; // 通过对象 stu 访问 name 成员

具体的代码片段,以便更清楚地理解:

#include<iostream>
#include<cstdio>
using namespace std;struct student {string name;int age;int score;
};int main() {student stu = { "zhangsan", 3, 60 };student* p = &stu; // p 是指向 stu 的指针// 使用指针访问运算符 -> 来访问成员cout << "name: " << p->name << " age: " << p->age << " score: " << p->score << endl;// 使用对象和点运算符 . 来访问成员cout << "name: " << stu.name << " age: " << stu.age << " score: " << stu.score << endl;return 0;
}

运行上述代码,输出如下:

name: zhangsan age: 3 score: 60
name: zhangsan age: 3 score: 60

可以看到,通过指针 p 访问结构体成员和直接通过结构体对象 stu 访问成员,效果是一样的,但它们的访问方式不同:

  • 指针访问p->namep->agep->score
  • 对象访问stu.namestu.agestu.score

总结

  • 使用 -> 运算符用于通过指针访问结构体的成员。
  • 使用 . 运算符用于通过结构体对象访问其成员。

确保根据变量的类型(是指针还是对象)使用正确的运算符。


http://www.ppmy.cn/ops/45026.html

相关文章

20240529瑞芯微官方Toybrick TB-RK3588开发板的Debian11下使用SCP拷贝文件

20240529瑞芯微官方Toybrick TB-RK3588开发板的Debian11下使用SCP拷贝文件 2024/5/29 20:48 1、ADB链接异常。 2、BT打开之后找不到设备&#xff1f; 不清楚&#xff1a;是我拿到的开发板的问题&#xff0c;还是Toybrick/Rockchip官方没有做好。 3、现在最新版本的WINSCP&…

PyTorch自定义张量操作开发指南【CFFI+CUDA】

PyTorch 与 TensorFlow 一起成为深度学习研究人员和从业者的标准。虽然 PyTorch 在张量运算或深度学习层方面提供了多种选择&#xff0c;但一些专门的操作仍然需要手动实现。在运行时至关重要的情况下&#xff0c;应使用 C 或 CUDA 来完成此操作&#xff0c;以支持 CPU 和 GPU …

职校老师的工资待遇怎么样

工资水平一直是教师们关注的焦点&#xff0c;毕竟&#xff0c;工资不仅关系到个人的生活品质&#xff0c;还影响着教师的职业满意度和工作动力。职校教师的工资待遇究竟是怎样的呢&#xff1f; 职校教师的工资水平受多种因素影响&#xff0c;包括地区、学校类型、个人资历和教学…

MySQL库操作

目录 一、基本的库操作 二、库的备份与恢复 MySQL登录选项 -h&#xff1a;指明登录部署了mysql服务的的主机 -P&#xff1a;指明访问的端口号 -u&#xff1a;指明登录的用户 -p&#xff1a;指明登陆密码 mysql -h xxx.x.x.x -P xxxx -u xxx -p xxxxxxxxx 一、基本的库…

力扣:541. 反转字符串 II

541. 反转字符串 II 给定一个字符串 s 和一个整数 k&#xff0c;从字符串开头算起&#xff0c;每计数至 2k 个字符&#xff0c;就反转这 2k 字符中的前 k 个字符。 如果剩余字符少于 k 个&#xff0c;则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个&#xff0…

python -【一】基础语法

一. 基础数据类型 常用的 6 种数据类型 类型描述说明数字&#xff08;Number&#xff09;int&#xff0c;float&#xff0c;complex(复数)&#xff0c;bool复数&#xff1a;4 3j&#xff0c;j 表示复数字符串&#xff08;String&#xff09;文本&#xff1a;单引号&#xff…

老师如何对付挑事儿的家长?

身为老师&#xff0c;你有没有遇到过这样的家长&#xff1a;孩子在学校里闹点小矛盾&#xff0c;或者作业分数有点争议&#xff0c;他们就气势汹汹地来找你&#xff0c;说你偏心&#xff0c;甚至在其他家长面前说三道四&#xff1f;面对这种爱“挑事”的家长&#xff0c;老师们…

初中地理的中考知识点 中考刷题

初中地理的中考知识点 小程序刷题&#xff0c;推荐用一叶兰 一&#xff0c;地球和地图 1、地球的形状是一个两极略扁&#xff0c;赤道略鼓的不规则的球体。地球的平均半径长是6371千米&#xff0c;赤道长约为4万千米。表面积约为5.1亿平方千米。 2、地球的自转所围绕的假想…