📅  最后修改于: 2023-12-03 14:48:44.086000             🧑  作者: Mango
在C/C++中,箭头操作符 ->
用于访问指向结构体或类的指针的成员。它是一个很常见的操作符,对于面向对象的编程来说是必需的。
箭头操作符的语法如下:
结构体指针->成员;
其中,结构体指针
是一个指向结构体类型的指针,成员
是结构体中的一个成员。
例如,如果有一个名为 Person
的结构体:
struct Person {
char name[50];
int age;
float height;
};
我们可以定义一个指向 Person
结构体的指针,并使用箭头操作符访问其成员:
Person *p = new Person(); // 创建一个动态的 Person 对象
p->age = 18; // 使用箭头操作符访问 age 成员
点操作符 .
也用于访问结构体或类的成员。然而,点操作符只能用于结构体或类的实例,而不能用于对它们的指针进行操作。
例如,对于上述的 Person
结构体,在创建一个实例后,我们可以使用点操作符访问其成员:
Person p;
p.age = 18; // 使用点操作符访问 age 成员
但是如果我们尝试使用点操作符访问指向 Person
结构体的指针的成员,编译器将会报错:
Person *p = new Person();
p.age = 18; // 错误:使用点操作符访问指针的成员
我们必须使用箭头操作符来访问指针的成员:
Person *p = new Person();
p->age = 18; // 使用箭头操作符访问 age 成员
因此,区别在于点操作符要求我们访问结构体或类的实例的成员,而箭头操作符要求我们访问指向结构体或类的指针的成员。
下面是一个使用箭头操作符访问指针成员的完整示例:
#include <iostream>
using namespace std;
struct Person {
char name[50];
int age;
float height;
};
int main() {
Person *p = new Person(); // 创建一个动态的 Person 对象
p->age = 18; // 使用箭头操作符访问 age 成员
cout << "Age: " << p->age << endl;
delete p; // 释放内存
return 0;
}
输出结果:
Age: 18
在 C/C++ 中,箭头操作符 ->
用于访问指向结构体或类的指针的成员。与点操作符 .
不同,箭头操作符要求我们访问指针的成员。箭头操作符是面向对象编程中必不可少的操作符,是我们需要熟练掌握的基本语法之一。