为何执行含后置自增i的C++代码后变量m的值为2?
问题解答:变量m的值为何是2?
我们一步步拆解代码的执行过程:
初始化阶段
- 数组
a初始化为{8, 10, 1, 14, 16},下标对应0到4 - 变量
i和m未初始化,后续通过赋值操作确定值
- 数组
执行
i = ++a[2];a[2]的初始值是1,**前置自增运算符(++)**会先将a[2]的值加1,变为2- 再把更新后的
a[2]的值(2)赋值给i,此时i = 2
执行
m = a[i++];- **后置自增运算符(
++)**的规则是:先使用变量当前的值参与运算,运算完成后再对变量执行自增操作 - 这里先使用
i当前的值(2)作为数组下标,取a[2]的值(此时a[2]已经是2)赋值给m,所以m = 2 - 赋值完成后,
i才会自增1,变为3
- **后置自增运算符(
最后
cout << i << m;会输出32
内容的提问来源于stack exchange,提问作者Frnaz Akbar
相关产品推荐
相关产品推荐

