对于C ++中的乘法和除法,使用'./'或'。*'与'/'或'*'的原因是什么?

问题描述 投票:0回答:2

我正在通过一些C ++代码来确定其运行方式(我自己对此语言还不是很了解),我碰到了一些看起来像这样的行:

  bw = 2.*ti/3.;           rorq = ((bw/to)**(1./q));

代码是否将使用。* ti而不是仅* ti有什么特殊原因?它与变量有关吗?

c++ variables logic operators division
2个回答
2
投票

首先,这不是有效的C ++代码:

rorq = ((bw/to)**(1./q));  

C ++语言没有**运算符。

解析表达式时,存在优先级规则。 “。”将自己附加到号码上。添加适当的空格:

bw = 2. * ti/3. ;
rorq = ((bw / to) ** (1. / q));  

[为了避免歧义,大多数C ++程序员会在小数点后添加0:

bw = 2.0 * ti / 3.0 ;
rorq = ((bw / to) ** (1.0 / q));  

“。0”通常被附加以强制将整数常量转换为浮点常量。后缀“ f”也可以使用:

bw = 2f * ti / 3f ;
rorq = ((bw / to) ** (1f / q));  

0
投票

这看起来根本不像C ++。

就我的编程语言缓存而言,bw = 2.*ti/3.;中的点表示按元素进行运算,如在matlab中用于乘法,除法和幂运算。 **中的双星号rorq = ((bw/to)**(1./q));与某些语言的求幂相关。

与问题标题有关,乘法和除法仅在C ++中分别通过使用*/来执行。在某些情况下,也可以使用按位移位运算符<<>>

© www.soinside.com 2019 - 2024. All rights reserved.