在objective-C中,Type * var和Type * var之间有什么区别?

时间:2010-07-27 09:28:23

标签: objective-c memory-management pointers

哦,作为一个记忆管理菜鸟的乐趣!

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

任何人都可以启发我吗?

编辑我的问题,构造的行为并没有不同,相反,我再次得到了多个声明问题。 谢谢!

3 个答案:

答案 0 :(得分:5)

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

Type* var1, var2;

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

历史上,Type *var表示法在C中更常见,其中它被读作“var被声明为指向Type的指针”,即“{{1的类型”是} *var“。另一方面,在C ++中,Type更常见,读作“Type* var被声明为”指向var“的类型。

答案 1 :(得分:2)

完全没有区别。

但请考虑以下几行:

Type* var1, var2;

这里只有var1是指向Type的指针,但如果你写

则更容易看到
Type *var1, var2; 

答案 2 :(得分:0)

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

Type* var
Type * var
Type *var

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

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