Mir*_*j50 -3 c++ operators comma comma-operator
考虑一下声明:
int a;
a = 1,2,3;
cout<<a; // prints a = 1
Run Code Online (Sandbox Code Playgroud)
我咨询了这个网站.现在发生这种情况是因为comma运算符的优先级最低.所以它就像(a=1),2,3.但出于好奇,我想知道在此之后发生了什么,编译器是否忘记了剩下的数字2和3.因为我认为如果他们被考虑那么可能先是1然后是2然后3将被初始化为a(类似于a = (1,2,3)).请告诉我这里究竟发生了什么?
这个:
a = 1,2,3;
Run Code Online (Sandbox Code Playgroud)
相当于:
a = 1;
2;
3;
Run Code Online (Sandbox Code Playgroud)
因此,2并且3将被评估,但没有效果.
您可以编译g++ main.cpp -Wall -Wextra并让编译器警告您:
warning: right operand of comma operator has no effect [-Wunused-value]
a = 1,2,3;
^
warning: right operand of comma operator has no effect [-Wunused-value]
a = 1,2,3;
^
Run Code Online (Sandbox Code Playgroud)