C语言 作用域

任何编程的作用域是程序的一个区域,定义的变量可以存在于该区域,而超出该变量则不能访问。

  • local 局部变量
  • global 全局变量
  • formal 参数变量

让我们了解什么是 local 和 global 变量以及 formal 参数。

局部变量(Local)

在函数或块内声明的变量称为局部变量,以下示例显示了如何使用局部变量,在这里,所有变量a,b和c都是main()函数的局部变量。

#include <stdio.h>

int main () {

  /* local variable declaration */
  int a, b;
  int c;

  /* actual initialization */
  a=10;
  b=20;
  c=a + b;

  printf ("value of a=%d, b=%d and c=%d\n", a, b, c);

  return 0;
}

全局变量(Global)

可以由任何函数访问。


#include <stdio.h>

/* global variable declaration */
int g;

int main () {

  /* local variable declaration */
  int a, b;

  /* actual initialization */
  a=10;
  b=20;
  g=a + b;

  printf ("value of a=%d, b=%d and g=%d\n", a, b, g);

  return 0;
}

程序的局部变量和全局变量可以具有相同的名称,但是函数内局部变量的值将优先,这是一个示例:


#include <stdio.h>

/* global variable declaration */
int g=20;

int main () {

  /* local variable declaration */
  int g=10;

  printf ("value of g=%d\n",  g);

  return 0;
}

编译并执行上述代码后,将产生以下输出:

value of g=10

参数变量(formal)

形式参数在函数中被视为局部变量,它们优先于全局变量。以下是一个示例:

#include <stdio.h>

/* global variable declaration */
int a=20;

int main () {

  /* local variable declaration in main function */
  int a=10;
  int b=20;
  int c=0;

  printf ("value of a in main()=%d\n",  a);
  c=sum( a, b);
  printf ("value of c in main()=%d\n",  c);

  return 0;
}

/* function to add two integers */
int sum(int a, int b) {

   printf ("value of a in sum()=%d\n",  a);
   printf ("value of b in sum()=%d\n",  b);

   return a + b;
}

编译并执行上述代码后,将产生以下输出:

value of a in main()=10
value of a in sum()=10
value of b in sum()=20
value of c in main()=30

值初始值

定义局部变量后,系统不会对其进行初始化,您必须自己对其进行初始化。如下定义全局变量时,系统将自动初始化全局变量.

数据类型 初始默认值
int 0
char ‘\0’
float 0
double 0
point NULL
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

Powered by bytekits.com,汇天下文字,成非凡梦想!!!