C : 星号、& 和星号?

新手上路,请多包涵

最近我看到了这个关于 编程范式 和教授的视频。使用星号、星号和 & 符号等术语。

这就是他使用这些运算符的方式:

 int i = 37;
float f = *(float*)&i;

以及他在写作时如何表达第 2 行:

浮点“f”等于星号浮点星,i 的 & 符号

我明白星号和&符号的含义,但是在这里使用星号有什么意义?它是星号的同义词吗?

原文由 witherspoon 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 552
2 个回答

* 之后的 float 用于形成一个类型。很多时候,当用文字提到指针类型时,人们会在类型之后说“星”而不是“指针”,例如。 “malloc 返回一个空星”。我从未听说过有人使用“星号”来指代类型。

开头的 * 用于取消引用指针,从而访问它指向的值(解释为 float 由于以下转换)。同样,根据我自己的经验,我从未听说有人在这里使用“星号”。人们只是倾向于说“取消引用”来描述正在执行的操作。

我不会读太多。正如您正确地发现的那样,这里有两种不同的上下文,只要您从 C++ 的角度理解它们的含义,就可以了。

原文由 Troubadour 发布,翻译遵循 CC BY-SA 3.0 许可协议

float f = *(float*)&i;

在这种情况下,左 \* 和右 \* 具有不同的语义。左 \* 表示通过引用获取值。右 \* 声明引用类型。

原文由 Denis Kreshikhin 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题