📜  C C++中的点(。)运算符(1)

📅  最后修改于: 2023-12-03 15:13:44.751000             🧑  作者: Mango

C/C++中的点(。)运算符

在C/C++编程语言中,点(。)运算符用于访问结构体、结构体指针和类的成员。该运算符允许程序员通过使用对象或指针来访问其成员变量和成员函数。

语法

在C/C++中,我们使用以下语法来使用点运算符:

<对象或指针>.<成员名>
示例
访问结构体成员

假设我们有一个名为Person的结构体,包含姓名和年龄两个成员变量:

struct Person {
    char name[50];
    int age;
};

int main() {
    struct Person p;
    strcpy(p.name, "John");
    p.age = 25;
    
    printf("Name: %s\n", p.name);
    printf("Age: %d\n", p.age);
    
    return 0;
}

输出结果:

Name: John
Age: 25

我们使用点运算符来访问Person结构体对象的成员变量nameage

访问结构体指针成员

当我们使用结构体指针时,我们可以使用点运算符来访问其成员,只需要将指针解引用:

struct Person {
    char name[50];
    int age;
};

int main() {
    struct Person p;
    struct Person* ptr = &p;
    strcpy(ptr->name, "John");
    ptr->age = 25;
    
    printf("Name: %s\n", ptr->name);
    printf("Age: %d\n", ptr->age);
    
    return 0;
}

输出结果与上一个示例相同。

访问类成员

在C++中,我们使用点运算符来访问类的成员变量和成员函数。以下是一个简单的示例:

class Person {
public:
    std::string name;
    int age;
    
    void introduce() {
        std::cout << "My name is " << name << " and I am " << age << " years old." << std::endl;
    }
};

int main() {
    Person p;
    p.name = "John";
    p.age = 25;
    
    p.introduce();
    
    return 0;
}

输出结果:

My name is John and I am 25 years old.

我们使用点运算符来访问Person类对象的成员变量nameage,以及成员函数introduce()

注意事项
  • 点运算符只能用于对象的成员访问,不能用于整数、浮点数等其他类型的操作数。
  • 当使用点运算符访问指针的成员时,需确保指针不为NULL,否则会产生未定义的行为。
  • 在C++中,私有成员只能在类的成员函数中访问,无法通过点运算符直接访问。

以上是关于C/C++中点运算符的介绍,希望能为您提供帮助!