C 语言中的局部作用域和全局作用域规则是什么?
全局作用域
全局作用域指定在块外定义的变量到程序结束都是可见的。
示例
#include<stdio.h>
int c= 30; /* global area */
main (){
int a = 10;
printf (“a=%d, c=%d” a,c);
fun ();
}
fun (){
printf (“c=%d”,c);
}输出
a =10, c = 30 c = 30
局部作用域
局部作用域指定在块内定义的变量仅在该块中可见,在块外不可见。
在块或函数(局部)中声明的变量可在该块内访问,在块外不存在。
示例
#include<stdio.h>
main (){
int i = 1;// local scope
printf ("%d",i);
}
{
int j=2; //local scope
printf("%d",j);
}
}输出
1 2
即使变量在各自的块中被重新声明并且具有相同名称,也会被认为是不同的。
示例
#include<stdio.h>
main (){
{
int i = 1; //variable with same name
printf ("%d",i);
}
{
int i =2; // variable with same name
printf ("%d",i);
}
}输出
1 2
在名称与外部块中的名称相同的块内重新声明变量,在执行内部块时会屏蔽外部块变量。
示例
#include<stdio.h>
main (){
int i = 1;{
int i = 2;
printf (“%d”,i);
}
}输出
2
在内部块内声明的变量可用于嵌套块,但前提是这些变量未在内部块中声明。
示例
#include<stdio.h>
main (){
int i = 1;{
int j = 2;
printf ("%d",j);
printf ("%d",i);
}
}输出
2 1
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP