C语言 - 作用域

C语言 - 作用域 首页 / C语言入门教程 / C语言 - 作用域

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

  •  local    - 局部变量

  •  global  - 全局变量

  •  formal - 参数变量

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

局部变量(Local)

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

#include <stdio.h>
 
int main () {

  /* 局部变量声明 */
  int a, b;
  int c;
 
  /* 实际初始化 */
  a=10;
  b=20;
  c=a + b;
 
  printf ("value of a=%d, b=%d and c=%d\n", a, b, c);
 
  return 0;
}

全局变量(Global)

可以由任何函数访问。

链接:https://www.learnfk.comhttps://www.learnfk.com/c-programming/c-scope-rules.html

来源:LearnFk无涯教程网

#include <stdio.h>
 
/* 全局变量声明 */
int g;
 
int main () {

  /* 局部变量声明 */
  int a, b;
 
  /* 实际初始化 */
  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>
 
/* 全局变量声明 */
int g=20;
 
int main () {

  /* 局部变量声明 */
  int g=10;
 
  printf ("value of g=%d\n",  g);
 
  return 0;
}

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

value of g=10

参数变量(formal)

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

#include <stdio.h>
 
/* 全局变量声明 */
int a=20;
 
int main () {

  /* 主函数中的局部变量声明 */
  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;
}

/* 两个整数相加的函数 */
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

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

Service Mesh实践指南 -〔周晶〕

数据结构与算法之美 -〔王争〕

Vue开发实战 -〔唐金州〕

后端技术面试 38 讲 -〔李智慧〕

.NET Core开发实战 -〔肖伟宇〕

互联网人的英语私教课 -〔陈亦峰〕

分布式金融架构课 -〔任杰〕

大厂设计进阶实战课 -〔小乔〕

现代C++20实战高手课 -〔卢誉声〕

好记忆不如烂笔头。留下您的足迹吧 :)