int x = 5,y = 10;
bool boolean = 0;
int k = (boolean ? ++x, ++y : --x, --y);
cout<<k;
Run Code Online (Sandbox Code Playgroud)
当布尔值为0时,它输出9,但是当它为1时输出10.我知道这是因为优先级而发生,但无法准确弄清楚它是如何发生的,请帮助我理解这一点.
注意:我知道如果我使用括号,我可以获得预期的输出,或者更好地编写一个干净的代码,我只是用它来理解编译器如何根据优先级来评估这些表达式.
int num = 0;
int *ptrNum = #
int &refNum = num;
Run Code Online (Sandbox Code Playgroud)
哪一个是内存表1或表2中引用变量的正确表示?
如果表2,那么为什么指针是一个对象而一个引用不是?
如果两个表示都不正确,请提供正确的表示和解释为什么引用不是对象.