C++中奇怪的多重赋值错误

Cem*_*mre 2 c++ variable-assignment

我的程序中有多个赋值语句,如下所示,query.constraints.size()它应该返回13(constraints是一个数组,它返回它的大小)

int num,size =  query.constraints.size();
Run Code Online (Sandbox Code Playgroud)

当我这样做size时,按预期变为13但num由于某种原因变为9790272.

当我单独进行下面的操作时,一切都很好,两者都是预期的13

int size =  query.constraints.size();

int num =  query.constraints.size();
Run Code Online (Sandbox Code Playgroud)

为什么我的多重赋值会产生奇怪的奇怪值?

Kon*_*lph 10

为什么我的多重赋值会产生奇怪的奇怪值?

因为C++没有多重赋值1.你在这里声明了两个变量,但只是初始化第二个,而不是第一个.


1嗯,int a, b = a = c;除了在非常特殊的情况下,大多数C++程序员都可以做到这样做会被认为是坏的代码.