C++beginner 2023-07-28 23:20 采纳率: 75%
浏览 4
已结题

学习C语言函数内容时的一个疑惑

学习C语言课程中遇到的示例,不明白为什么会输出1

#include<stdio.h>

int MyF(int a, int b)
{
    int c;
    if (a > b)
    {
        c = 1;
    }
    else if(a == b)
    {
        c = 0;
    }
    else
    {
        c = -1;
    }
    return c;
}
int main()
{
    /*int d,e, f;
    scanf_s("%d,%d",&e,&f);
    d =    Findmin(e,f);
    printf("%d", d);*/
    int i = 2;
    int p;
    p = MyF(i, i++);
    printf("%d", p);

    return 0;

在调试时显示a=3,b=2,实在不明白为什么,求解答

  • 写回答

2条回答 默认 最新

  • threenewbee 2023-07-28 23:39
    关注

    p = MyF(i, i++);
    函数中参数的求值顺序是未定义行为,不同编译器不一样,所以这个函数的调用结果无法预测。

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

报告相同问题?

问题事件

  • 系统已结题 8月6日
  • 已采纳回答 7月29日
  • 创建了问题 7月28日

悬赏问题

  • ¥15 clousx6整点报时指令怎么写
  • ¥30 远程帮我安装软件及库文件
  • ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
  • ¥20 深信服vpn-2050这台设备如何配置才能成功联网?
  • ¥15 Arduino的wifi连接,如何关闭低功耗模式?
  • ¥15 Android studio 无法定位adb是什么问题?
  • ¥15 C#连接不上服务器,
  • ¥15 angular项目错误
  • ¥20 需要帮我远程操控一下,运行一下我的那个代码,我觉得我无能为力了
  • ¥20 有偿:在ubuntu上安装arduino以及其常用库文件。