gpt4 book ai didi

c - 箭头运算符与点运算符

转载 作者:太空狗 更新时间:2023-10-29 16:22:08 24 4
gpt4 key购买 nike

<分区>

在我看来,C 的箭头运算符 (->) 是不必要的。点运算符 (.) 应该足够了。采取以下代码:

typedef struct {
int member;
} my_type;

my_type foo;
my_type * bar;
int val;

val = foo.member;
val = bar->member;

我们看到必须使用箭头运算符来取消引用 bar。但是,我更愿意写

val = bar.member;

关于我是试图从结构中还是从指向结构的指针中提取“成员”,这一点没有歧义。但是很容易用错运算符,尤其是在重构代码的时候。 (例如,也许我正在对 foo 做一些复杂的操作,所以我将代码移到一个新函数中并传递一个指向 foo 的指针)。我认为我不需要关心 foo 是否是一个指针;编译器可以担心细节。

那么问题来了:从 C 语言中去掉 -> 不是更简单吗?

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