张尽欢 2019-08-04 14:51 采纳率: 100%
浏览 301
已采纳

i = 2,问(i++) + (i++)表达式 C中等于4,java中等于5 这是为什么?

如题:按我的理解是等于5的,请教下为何c语言中答案是4

java:

                int i =2;
        int temp;

        temp = (i++) + (i++);
        System.out.println(temp);

c语言

    int i =2;
    int temp;

    temp = (i++) + (i++);
    printf("%d",temp);

  • 写回答

3条回答 默认 最新

  • threenewbee 2019-08-04 16:33
    关注

    如果你多试几个编译器就知道,这个结果除了4 5还可以是别的。因为这个叫做未定义行为。
    http://www.it610.com/article/1508275.htm
    讨论这种问题是愚蠢的。

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

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器