小编Kar*_*her的帖子

这个三元条件表达式是如何执行的?

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.我知道这是因为优先级而发生,但无法准确弄清楚它是如何发生的,请帮助我理解这一点.

注意:我知道如果我使用括号,我可以获得预期的输出,或者更好地编写一个干净的代码,我只是用它来理解编译器如何根据优先级来评估这些表达式.

c++ ternary-operator operator-precedence

17
推荐指数
3
解决办法
1349
查看次数

引用变量如何在内存中表示?

int num = 0;
int *ptrNum = &num;
int &refNum = num;
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

哪一个是内存表1或表2中引用变量的正确表示?
如果表2,那么为什么指针是一个对象而一个引用不是?
如果两个表示都不正确,请提供正确的表示和解释为什么引用不是对象.

c++ pointers reference c++11

3
推荐指数
1
解决办法
442
查看次数