类型转换运算符中的星号

时间:2014-01-12 01:52:40

标签: objective-c typecast-operator

以下是Stephen G. Kochan的一个无法解释的例子。 “在Objective-C中编程”。

id   myNumber;
Fraction *myFraction;
  ...
myFraction = (Fraction *) myNumber;

类型转换操作符中*的功能是什么?如果从类型转换操作符中删除了星号,会发生什么?

myFraction = (Fraction) myNumber;

1 个答案:

答案 0 :(得分:1)

“分数”可以被认为是一个结构 - 大量的字节打包在一起。添加星号表示变量只是指向该结构的指针 - 例如,就像一个8字节的地址而不是整个结构。

由于结构很难通过惯例传递(后来通过法律),我们传递指针。

在您的特定情况下,根本不需要演员表 - “id”会自动转换为其他类型,因此这只是无用的冗长。 Stephen G. Kochan弄错了。