我为什么要用“为什么?”;int输入{0}&引用;而不是",;整数输入&引用; 我已经开始从CeleNCPP.com学习C++了。p>
在解释函数的地方,第一个例子中有一个奇怪的变量初始化:我为什么要用“为什么?”;int输入{0}&引用;而不是",;整数输入&引用; 我已经开始从CeleNCPP.com学习C++了。p>,c++,C++,在解释函数的地方,第一个例子中有一个奇怪的变量初始化:intinput{0} 我的IDE(CLion)声明:>预期“;”在声明末尾 如果我运行这段代码(使用gcc),它运行得很好。如果我去掉括号也是一样的 那么变量名后面的{}是什么意思呢 以下是完整的示例: #包括 int getValueFromUser() { std::cout>输入; 返回输入; } int main() { int num{getValueFromUser()}; std::cout标题有误导性,也许您想问{0}和=0
intinput{0}代码>
我的IDE(CLion)声明:>预期“;”在声明末尾
如果我运行这段代码(使用gcc),它运行得很好。如果我去掉括号也是一样的
那么变量名后面的{}
是什么意思呢
以下是完整的示例:
#包括
int getValueFromUser()
{
std::cout>输入;
返回输入;
}
int main()
{
int num{getValueFromUser()};
std::cout标题有误导性,也许您想问{0}和=0之间的区别,而不是为什么要初始化变量。请澄清问题
intx{0};
将变量初始化为0,等于intx=0;
。这是C++11中添加的特性
最佳实践包括在变量中进行初始化。
如果不初始化整数,并且由于它没有默认构造函数,编译器将不会初始化它
这意味着在您使用它时,它将有一个未定义的值。如果您第一次写入它,这可能不是问题,但如果您忘记它未初始化,并假设它有一个已定义的值,则可能是一个严重的问题
下面是代码中多次出现的一个小错误:
int n;
int factorial;
cin >> n;
for(int i = 1; i <=n; i++)
factorial *= i; // Whops, factorial started with undefined value
intn;
整数阶乘;
cin>>n;
对于(int i=1;i回答标题为什么我应该使用“int input{0};”而不是“int input;”“
int-input{0};
或int-input=0;
使用0
int-input初始化变量input
;
不初始化值input
不确定。如果以后使用该变量,可能会导致未定义的行为:
int input;
int var = input; // undefined behavior
<> P>关于贾斯廷的详细信息,如果你想学习C++,我建议你从其中之一中避免这些警告,确保你的IDE语言设置至少使用C++ 11。@,我会删除它,我的坏。谢谢。