Objective-c 语法 - Class *var 与 Class* var

发布于 2024-11-02 11:03:51 字数 162 浏览 8 评论 0原文

我有 PHP 背景,而且是 Objective C 的新手。 我在 var 将其标识为指针之前得到一个星号。但是,类名后面的星号是什么意思?我已经看到了这两种方式,这不是一个错误。风格差异是否具有相同含义?

Class *var  
Class* var 

I'm from a PHP background and I'm new to Objective C.
I get that an asterisk before a var identifies it as a pointer. However what does an asterisk AFTER a CLASS NAME mean? I've seen it both ways and it's not a mistake. Is a style difference with the same meaning?

Class *var  
Class* var 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

白首有我共你 2024-11-09 11:03:52

这两个语句在语义上是等效的。这是一个偏好问题。需要注意的一件事是:

Class* var1, var2;

该语句声明 var1 为 Class*,但 var2 为 Class。将它们声明为指向类的指针:

Class *var1, *var2;

这就是为什么我更喜欢将星号分组在变量名附近,即使它对于您声明的类型不太“正确”。

The two statements are semantically equivalent. It's a matter of preference. One thing to note:

Class* var1, var2;

That statement declares var1 to be Class* but var2 Class. To declare both of them a pointer to Class:

Class *var1, *var2;

Which is why I prefer grouping the asterisk near the variable name, even though it's less "correct" to the type you're declaring.

奢华的一滴泪 2024-11-09 11:03:52

就像 C 和 C++ 一样,它也有风格。

Just like C and C++, it's stylistic.

一片旧的回忆 2024-11-09 11:03:52

在这种情况下,空格并不重要,因此您可以任意编写。

The whitespace is not significant in this case so you can write either.

一绘本一梦想 2024-11-09 11:03:51

一样的意思。在声明多个变量的情况下,在类名后面使用星号会有些误导;例如,在这一行中:

Myclass* a, b;

星号仅适用于 a。但有些人认为 * 是数据类型的一部分,因此与类名属于一起。

Same meaning. Using the asterisk after the class name is somewhat misleading in case of multiple variable declarations; for example, in this line:

Myclass* a, b;

the asterisk only applies to a. But some people argue that * is a part of the datatype, therefore belongs together with the class name.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文