gpt4 book ai didi

c++ - 为什么结构数组不需要成员运算符?

转载 作者:行者123 更新时间:2023-11-28 00:21:27 25 4
gpt4 key购买 nike

我正在学习 C++ 中的指针,我注意到如果我声明一个结构指针,我必须使用箭头成员运算符 (->) 来访问值。这是一个例子。

client * cp = new client;

cp->age = 30;

但是,如果我声明一个动态结构数组,我可以使用点运算符而不是成员运算符,如下所示:

client * cp = new client[10];

cp[1].age = 30;

如果声明动态结构数组,为什么我可以使用点运算符而不是成员运算符?

最佳答案

因为它们属于不同的类型。在您的第一个示例中,cp 是一个client*,因此您使用operator->()。在您的第二个示例中,cp[1] 是一个client&,因此您使用operator.()

如果你有:

client** cp;

然后您将使用:

cp[1]->age = 30;

关于c++ - 为什么结构数组不需要成员运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27285727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com