【c语言】下面程序是怎样执行的呢?求详细解答


#include <stdio.h>
int x=5, y=6;
void incxy( ){
    x++; y++;
}
int main( ){
    int x=3;
    incxy( );
    printf("%d,%d\n", x,y);
    return 0;
}

为什么最后的结果是3,7呢

  • 全局变量作用域为程序的始终,局部变量作用于当前函数。

  • 在声明了同名变量的方法中,使用局部变量的数值

  • 在未声明同名变量的方法中,使用全局变量的数值

  • x = 5, y = 6是全局变量, 你的函数没有传递参数过去, 所以是改变的全局变量中的x, y,而在main函数中声明了同名变量, 所以用x = 3
    有用请采纳

在main函数中,当局部变量和全局变量同时存在的时候,优先引用局部变量,而不去引用全局变量。所以x=3,y=7