参数可以与全局变量具有相同的名称,但仍可以在函数内部调用吗?

时间:2020-10-30 07:52:40

标签: c

#include<stdio.h>
int x = 12;

void foo(int x)
{
  printf("%d\n",x);
}

int main() 
{
  foo(3);
  printf("%d\n",x);
  return 0;
} 

这给出了输出

3
12

如何在函数foo()中访问全局int x?

2 个答案:

答案 0 :(得分:0)

可以,但是参数会遮盖它。只需在foo函数中为参数变量使用另一个名称。

答案 1 :(得分:0)

是的,它的工作原理是这样,因为只要它们在不同的范围内,就可以使用相同名称的变量。 “ x”在全局范围(全局变量)和局部范围(在foo()中作为参数)中定义。但是它们位于内存中的不同位置。