【问题标题】:Declaration of variable in C++ [duplicate]C ++中的变量声明[重复]
【发布时间】:2023-12-27 07:02:01
【问题描述】:

最近我在 C++ 中看到了一段相当古老的代码,其中使用了 int var(12) 而不是 int var=12。为什么它有效?我应该避免写这种风格的声明吗?

【问题讨论】:

    标签: c++ variables coding-style declaration


    【解决方案1】:

    在C++中有三种初始化变量的方法。

    类型标识符 = 初始值;

    例如,要声明一个名为 x 的 int 类型变量,并在声明它的同时将其初始化为零,我们可以这样写:

    int a=5;               // initial value: 5
    

    类型标识符(initial_value);

    第二种方法,称为构造函数初始化(由 C++ 语言引入),将初始值括在括号 (()) 之间:

    int b(3);              // initial value: 3
    

    类型标识符 {initial_value};

    最后,第三种方法,称为统一初始化,与上面类似,但使用花括号 ({}) 代替括号(这是在 2011 年 C++ 标准的修订中引入的):

    int c{2};              // initial value: 2
    

    你应该检查Documentation部分初始化变量

    【讨论】:

    • 它们不等价。() 将执行某些缩小转换。
    • int a{1.0} 是一个错误。 int a(1.0) 是合法的。它们不一样。