双重符号之间的区别

Difference Between Double's Notation

在 learncpp.com 上,建议将双打写成:

double num {5.0}

这和:

之间有什么真正的区别吗?
double num {5}

我的编译器 (VS 2019) 似乎将它们视为等同的。

对于那种特定情况,它们实际上是等效的,但是,情况并非总是如此。

例如:

#include <iostream>

void foo(int v) {
  std::cout << "foo(int) called\n";
}

void foo(double v) {
  std::cout << "foo(double) called\n";
}

int main() {
  foo(5.0);
  foo(5);
}

该程序产生:

foo(double) called
foo(int) called

如果仅出于这个原因,当您想表达 double 值时,最好养成始终使用 double 文字的习惯,即使是 int 文字本来也一样。否则,迟早你会运行陷入一些意外。