时间之失 2022-02-03 23:47 采纳率: 50%
浏览 42
已结题

C++中递增运算符的使用疑惑

参考该博主知识点的介绍https://blog.csdn.net/weixin_45856549/article/details/103169599?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_utm_term~default-1.pc_relevant_aa&spm=1001.2101.3001.4242.2&utm_relevant_index=4。我进行了试验
void main()

{
int x = 5;
//cout << x++ << endl;
cout << 2 * x++ << endl << 3 - ++x;//▲▲▲

int y = 1;
int u = 1;
//int q = 2 * ++y;
//cout << "\nthe value of q = " << q << endl;
cout << endl << 2 * ++y << endl;
//int w = 2 * u++;
//cout << "the value of w = " << w << endl;
cout << 2 * u++ << endl;

}

运行结果

12
-4
4
2

我就想问一下:为什么(2 * x++)显示会是12呢,不应该是10吗?
  • 写回答

4条回答 默认 最新

  • 关注

    a++ 是先返回原本的值, 再对a加1
    ++a 是先对a加1 再返回加1后的值

    cout 和printf 一样是从右往左计算表达式.

    cout << 2 * x++ << endl << 3 - ++x; 中是 先计算 ++x; x先l加1变成6
    再计算 2 * x++ 时x已经是6了, 2*6=12,之后x再加1

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 2月27日
  • 已采纳回答 2月19日
  • 创建了问题 2月3日