最近我看到了这个关于 编程范式 和教授的视频。使用星号、星号和 & 符号等术语。
这就是他使用这些运算符的方式:
int i = 37;
float f = *(float*)&i;
以及他在写作时如何表达第 2 行:
浮点“f”等于星号浮点星,i 的 & 符号
我明白星号和&符号的含义,但是在这里使用星号有什么意义?它是星号的同义词吗?
原文由 witherspoon 发布,翻译遵循 CC BY-SA 4.0 许可协议
最近我看到了这个关于 编程范式 和教授的视频。使用星号、星号和 & 符号等术语。
这就是他使用这些运算符的方式:
int i = 37;
float f = *(float*)&i;
以及他在写作时如何表达第 2 行:
浮点“f”等于星号浮点星,i 的 & 符号
我明白星号和&符号的含义,但是在这里使用星号有什么意义?它是星号的同义词吗?
原文由 witherspoon 发布,翻译遵循 CC BY-SA 4.0 许可协议
float f = *(float*)&i;
在这种情况下,左 \* 和右 \* 具有不同的语义。左 \* 表示通过引用获取值。右 \* 声明引用类型。
原文由 Denis Kreshikhin 发布,翻译遵循 CC BY-SA 3.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.5k 阅读
3 回答474 阅读✓ 已解决
在
*
之后的float
用于形成一个类型。很多时候,当用文字提到指针类型时,人们会在类型之后说“星”而不是“指针”,例如。 “malloc 返回一个空星”。我从未听说过有人使用“星号”来指代类型。开头的
*
用于取消引用指针,从而访问它指向的值(解释为float
由于以下转换)。同样,根据我自己的经验,我从未听说有人在这里使用“星号”。人们只是倾向于说“取消引用”来描述正在执行的操作。我不会读太多。正如您正确地发现的那样,这里有两种不同的上下文,只要您从 C++ 的角度理解它们的含义,就可以了。