首页 > 解决方案 > 为什么这段代码在 Mac OS 和 Linux 中执行不同?

问题描述

我遇到了以下代码问题。当我在 Mac 中运行此代码时,我得到的输出为 1 2。但是,在 Linux 命令行上,输出为 2 2。谁能解释为什么会发生这种情况?

struct point
{
    int x,y; 
};

void foo(struct point p[])
{
    printf("%d %d", p->x, ++p->x);
}

int main()
{
    struct point p1[ ] = {1, 2, 3, 4}; 
    foo(p1);

    return 0;
}

标签: c

解决方案


推荐阅读