xlks 2020-08-09 13:02 采纳率: 100%
浏览 626
已采纳

这段代码在Dev-C++和Visual Studio 2019中的运行结果不一样,这是怎么回事呢?

代码如下

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int i=5,p;
    p=(i++)+(i++)+(i++);
    printf("p=%d\ni=%d\n",p,i);
    system("pause");
    return 0;
}

在Dev-C++(5.1.1)中p输出为15,在Visual Studio 2019中是18,为什么会不一样?求p的算式“p=(i++)+(i++)+(i++);”中的运算顺序又是怎样的?

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-08-09 13:07
    关注

    因为这是C语言的未定义行为,所以不同的编译器编译出来的代码五花八门不保证结果一致
    参考:
    https://www.cnblogs.com/Lee-geeker/archive/2013/08/02/3232693.html

    问题解决的话,请点下采纳

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

    报告相同问题?

    悬赏问题

    • ¥15 信号处理中的凸优化问题
    • ¥15 arm虚拟机无法和物理机互通
    • ¥15 如何在此代码上增加一个统计学生生源的功能?(语言-c语言)
    • ¥15 Android导航条遮盖异常
    • ¥15 计算机网络技术基础问题
    • ¥15 设置mac系统只能访问指定网站
    • ¥15 西门子博途 s7 1200控制三台步进电机
    • ¥15 基于非参数的方向距离函数求污染物影子价格(有偿)
    • ¥15 vue+element 生成table
    • ¥15 实验 4 FIFO 算法和 LRU 算法-C 程序实现