"都是常见的运算符。它们分别表示访问成员和访问指针成员。但是,当我们需要访问结构体或类的成员时,我们面临一个问题:使用"."还是"->"? | 21xrx.com" /> "."还是"->"? |21xrx.com
21xrx.com
2024-12-26 13:28:44 Thursday
登录
文章检索 我的文章 写文章
"."还是"->"?
2023-07-12 10:25:53 深夜i     --     --
选择 符号 运算 编程 风格

在编程中,"."和"->"都是常见的运算符。它们分别表示访问成员和访问指针成员。但是,当我们需要访问结构体或类的成员时,我们面临一个问题:使用"."还是"->"?

首先,让我们来了解一下它们的含义。"."符号用于访问普通变量或类的成员,例如:


struct Person

  string name;

;

Person p;

p.name = "John";

cout << p.name;

这里,"."符号用于访问Person结构体的name成员。

然而,当我们访问指向结构体或类的指针时,我们需要使用"->"符号,例如:


Person* ptr = new Person();

ptr->name = "John";

cout << ptr->name;

这里,"->"符号用于访问指向Person结构体的指针的name成员。

因此,当我们需要访问结构体或类的成员时,我们需要根据它们是普通变量还是指针来决定使用"."还是"->"符号。

但是,有些编程语言(例如C++)提供了一种称为"结构体访问拓展(Structural Access Extension)"或"箭头运算符(Arrow Operator)"的功能,它们允许我们使用"."符号访问指针成员。例如:


Person* ptr = new Person();

(*ptr).name = "John";

cout << (*ptr).name;

这里,结构体访问拓展允许我们使用"."符号来代替"*"和"->"符号。

综上所述,当我们需要访问结构体或类的成员时,我们需要根据它们是普通变量还是指针来决定使用"."还是"->"符号。但是,我们还需要了解我们所使用的编程语言是否提供了结构体访问拓展功能。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复