为什么输出结果是2不是1

img


为什么结果2, i++返回后就是1啊,然后再进行输出,为什么答案是输出2啊

因为函数执行了2次
i是静态变量,会保持数值
执行两次那么就变成2了呗

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7795597
  • 这篇博客也不错, 你可以看下设计2个线程1个线程每次对i加1,另一个线程每次对i减去1
  • 除此之外, 这篇博客: 搞懂i++,让面试官大吃一惊吧中的 首先处于多线程并发情况下,我们需要先知道什么是并发三大特性 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    1. 原子性:原子性就是说一个操作不能被打断,要么执行完要么不执行。

    2. 可见性:可见性是指一个变量的修改对所有线程可见。即当一条线程修改了这个变量的值,新值对于其他线程来说是可以立即得知的。

    3. 有序性:为了提高程序的执行性能,编辑器和处理器都有可能会对程序中的指令进行重排序。