我正在通过一些C ++代码来确定其运行方式(我自己对此语言还不是很了解),我碰到了一些看起来像这样的行:
bw = 2.*ti/3.; rorq = ((bw/to)**(1./q));
代码是否将使用。* ti而不是仅* ti有什么特殊原因?它与变量有关吗?
首先,这不是有效的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));
这看起来根本不像C ++。
就我的编程语言缓存而言,bw = 2.*ti/3.;
中的点表示按元素进行运算,如在matlab中用于乘法,除法和幂运算。 **
中的双星号rorq = ((bw/to)**(1./q));
与某些语言的求幂相关。
与问题标题有关,乘法和除法仅在C ++中分别通过使用*
和/
来执行。在某些情况下,也可以使用按位移位运算符<<
和>>
。