📜  –>(转到)在C C++中(1)

📅  最后修改于: 2023-12-03 14:48:44.086000             🧑  作者: Mango

在C/C++中使用'->'(转到)

在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++ 中,箭头操作符 -> 用于访问指向结构体或类的指针的成员。与点操作符 . 不同,箭头操作符要求我们访问指针的成员。箭头操作符是面向对象编程中必不可少的操作符,是我们需要熟练掌握的基本语法之一。