C++ 什么是;自动asd=(2,3,4,5)&引用;做
快速问题 这在C++中做了什么?p>C++ 什么是;自动asd=(2,3,4,5)&引用;做,c++,C++,快速问题 这在C++中做了什么?p> auto asd = (1,2,3,4,5); 注意:此注释不会发出错误 这是一节课吗? 如果它是一个数据结构或类或数组,你能告诉我如何获得单个元素的值吗 当我能(1,2,3,4,5)是一个值为5的int类型的表达式。表达式分隔符操作符,计算两个参数(从左到右排序),但第二个参数的值是整个表达式的值 所以你的代码相当于 auto asd = 5; 忽略括号,它们在这里什么都不做。您正在调用ints上的逗号运算符,从而从表达式返回最终值。这是我最喜欢的模糊
auto asd = (1,2,3,4,5);
注意:此注释不会发出错误
这是一节课吗?
如果它是一个数据结构或类或数组,你能告诉我如何获得单个元素的值吗
当我能(1,2,3,4,5)
是一个值为5的int
类型的表达式。表达式分隔符操作符,
计算两个参数(从左到右排序),但第二个参数的值是整个表达式的值
所以你的代码相当于
auto asd = 5;
忽略括号,它们在这里什么都不做。您正在调用
int
s上的逗号运算符,从而从表达式返回最终值。这是我最喜欢的模糊处理工具的一个很好的应用:)括号在这里并不无关。赋值比逗号运算符具有更高的优先级,因此如果没有它们,示例将无法执行compile@Mansoor括号是必要的。否则,,
不会被识别为运算符,而是作为声明的分隔符。没有抓住问题的关键,OP可能认为括号会将表达式转换为集合,但事实并非如此。是的,它们是必要的,但并没有达到预期的效果。你可以更精确地说,它相当于intasd=5
@nielsen:但是关于auto
没有什么不精确的地方。5是int
类型的文本,即使在具有16位char
和int
的假设系统中,也总是如此。您的变量命名不精确,可耻。@Bathsheba是的,它总是一个int
,这就是为什么说它是int
,而不是说它是auto
(=“右手边的计算结果是什么类型的”)更准确。