【问题标题】:In objective-C what's the difference between Type* var, and Type *var?在 Objective-C 中,Type* var 和 Type *var 有什么区别?
【发布时间】:2011-03-21 12:18:18
【问题描述】:

哦,成为内存管理新手的乐趣!

我被一些 Objective-C 代码所吸引,尽管我了解指针的基础知识,但我已经看到了这两种不同的结构,但无法真正理解它们的区别。

谁能赐教?

编辑了我的问题,构造并没有表现出不同的行为,相反,我再次被多个声明陷阱所吸引。 谢谢!

【问题讨论】:

标签: objective-c memory-management pointers


【解决方案1】:

完全没有区别。

但请考虑以下行:

Type* var1, var2;

这里只有var1是一个指向Type的指针,但是如果你写的话更容易看到

Type *var1, var2; 

【讨论】:

    【解决方案2】:

    没有区别 - 这是一个品味问题。但是,请注意,指针实际上总是绑定到名称,而不是类型。所以这个:

    Type* var1, var2;
    

    var1 声明为指向Type 的指针,而var2 不是指针。这只是不在同一语句中声明多个变量的另一个原因。

    从历史上看,Type *var 表示法在 C 中更为常见,它被解读为“var 被声明为指向Type 的指针”,即“*var 的类型是Type”。另一方面,在 C++ 中,Type* var 更常见,被解读为“var 被声明为‘指向Type’的类型”。

    【讨论】:

      【解决方案3】:

      你确定它的行为不同吗?我觉得有点奇怪。即使我不了解Objective-c,在C中也没有区别

      Type* var
      Type * var
      Type *var
      

      这只是语法/偏好的问题。

      除非您不是在谈论声明变量,而是访问它?

      【讨论】:

        猜你喜欢
        • 2021-05-07
        • 2015-04-15
        • 2019-09-21
        • 2018-12-07
        • 1970-01-01
        • 1970-01-01
        • 2013-06-28
        • 2011-06-01
        • 2013-08-10
        相关资源
        最近更新 更多