Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 什么是;自动asd=(2,3,4,5)&引用;做_C++ - Fatal编程技术网

C++ 什么是;自动asd=(2,3,4,5)&引用;做

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上的逗号运算符,从而从表达式返回最终值。这是我最喜欢的模糊

快速问题 这在C++中做了什么?p>
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
(=“右手边的计算结果是什么类型的”)更准确。