【发布时间】:2020-09-12 00:22:10
【问题描述】:
我正在阅读以下内容的区别:
1)
std::string test = level > 10 ? "Master" : "Beginner";
2)
std::string test;
if (level > 10)
test = "Master";
else
test = "Beginner";
在第二种情况下,有人告诉我,在第二种选择中,正在创建一个我不理解的临时值。
我了解到,当我们声明一个没有初始化的变量时,它会占用垃圾,所以编译器只保存一个内存位置,并不能“工作”来改变它的值。
【问题讨论】:
-
这能回答你的问题吗? Ternary operator ?: vs if...else
-
您的示例中没有“垃圾”,
std::string有一个被调用的构造函数。严格来说,一般来说,统一化的东西的价值不是“垃圾”,只是不允许你使用它,如果你这样做了,你会得到一些看起来像垃圾的东西
标签: c++ initialization conditional-operator