c指针交换代码无错,答案出错

代码没啥问题,答案错误,函数也是如此,不解nmalslxnxjsoowkdkmxx

img

输入你用了中文逗号,就是这么简单。。。

我用的gcc 11.2,没有问题

int main(int argc, char *argv[])
{
    int a = 0, b = 0;
    int *p1 = NULL, *p2 = NULL;
    scanf("%d, %d", &a, &b);
    p1 = &a; p2 = &b;
    if (a < b)
    {
        p1 = &b; p2 = &a;
    }

    printf("%d, %d\n", *p1, *p2);
    return 0;
}

代码没有问题,问题是你scanf输入函数的问题, 给b赋值的问题,这个细节可以关注
注意scanf获取输入时,前面的格式化内容。

img