以下是Stephen G. Kochan的一个无法解释的例子。 “在Objective-C中编程”。
id myNumber;
Fraction *myFraction;
...
myFraction = (Fraction *) myNumber;
类型转换操作符中*的功能是什么?如果从类型转换操作符中删除了星号,会发生什么?
myFraction = (Fraction) myNumber;
答案 0 :(得分:1)
“分数”可以被认为是一个结构 - 大量的字节打包在一起。添加星号表示变量只是指向该结构的指针 - 例如,就像一个8字节的地址而不是整个结构。
由于结构很难通过惯例传递(后来通过法律),我们传递指针。
在您的特定情况下,根本不需要演员表 - “id”会自动转换为其他类型,因此这只是无用的冗长。 Stephen G. Kochan弄错了。