【发布时间】:2011-03-21 12:18:18
【问题描述】:
哦,成为内存管理新手的乐趣!
我被一些 Objective-C 代码所吸引,尽管我了解指针的基础知识,但我已经看到了这两种不同的结构,但无法真正理解它们的区别。
谁能赐教?
编辑了我的问题,构造并没有表现出不同的行为,相反,我再次被多个声明陷阱所吸引。 谢谢!
【问题讨论】:
标签: objective-c memory-management pointers
哦,成为内存管理新手的乐趣!
我被一些 Objective-C 代码所吸引,尽管我了解指针的基础知识,但我已经看到了这两种不同的结构,但无法真正理解它们的区别。
谁能赐教?
编辑了我的问题,构造并没有表现出不同的行为,相反,我再次被多个声明陷阱所吸引。 谢谢!
【问题讨论】:
标签: objective-c memory-management pointers
完全没有区别。
但请考虑以下行:
Type* var1, var2;
这里只有var1是一个指向Type的指针,但是如果你写的话更容易看到
Type *var1, var2;
【讨论】:
没有区别 - 这是一个品味问题。但是,请注意,指针实际上总是绑定到名称,而不是类型。所以这个:
Type* var1, var2;
将var1 声明为指向Type 的指针,而var2 不是指针。这只是不在同一语句中声明多个变量的另一个原因。
从历史上看,Type *var 表示法在 C 中更为常见,它被解读为“var 被声明为指向Type 的指针”,即“*var 的类型是Type”。另一方面,在 C++ 中,Type* var 更常见,被解读为“var 被声明为‘指向Type’的类型”。
【讨论】:
你确定它的行为不同吗?我觉得有点奇怪。即使我不了解Objective-c,在C中也没有区别
Type* var
Type * var
Type *var
这只是语法/偏好的问题。
除非您不是在谈论声明变量,而是访问它?
【讨论】: