C 范围规则
在任何类型的编程中,作用域是程序中定义的变量存在的区域,超出该区域就无法访问变量。 C语言中有三个地方可以声明变量:
函数或块内的局部变量 形式参数的函数参数定义中所有函数外的全局变量
我们来看看什么是局部变量、全局变量和形参。
局部变量
在函数或块中声明的变量称为局部变量。它们只能由函数或代码块内的语句使用。局部变量在函数之外是不可知的。下面是使用局部变量的示例。这里所有的变量 a、b 和 c 都是 main() 函数的局部变量。
实例
#include
int main ()
{
/* 局部变量声明 */
int a, b;
int c;
/* 实际初始化 */
a = 10;
b = 20;
c = a + b;
printf ("value of a = %d, b = %d and c = %dn", a, b, c);
return 0;
}
全局变量
全局变量定义在函数之外,通常在程序的顶部。全局变量在程序的整个生命周期都有效,可以在任何函数内访问。
全局变量可以被任何函数访问。也就是说,全局变量在声明后在整个程序中都是可用的。以下是使用全局变量和局部变量的示例:
实例
#include
/* 全局变量声明 */
int g;
int main ()
{
/* 局部变量声明 */
int a, b;
/* 实际初始化 */
a = 10;
b = 20;
g = a + b;
printf ("value of a = %d, b = %d and g = %dn", a, b, g);
return 0;
}
在一个程序中,局部变量和全局变量可以同名,但在一个函数中,如果两个名字相同,则使用局部变量值,不使用全局变量。这是一个例子:
在程序中,局部变量和全局变量的实例
#include
/* 全局变量声明 */
int g = 20;
int main ()
{
/* 局部变量声明 */
int g = 10;
printf ("value of g = %dn", g);
return 0;
}
上述代码编译执行后,会产生如下结果:
value of g = 10
形式参数
函数的参数,即形参,在函数内部被视为局部变量,如果与全局变量同名,则优先使用。这是一个例子:
实例
#include
/* 全局变量声明 */
int a = 20;
int main ()
{
/* 在主函数中的局部变量声明 */
int a = 10;
int b = 20;
int c = 0;
int sum(int, int);
printf ("value of a in main() = %dn", a);
c = sum( a, b);
printf ("value of c in main() = %dn", c);
return 0;
}
/* 添加两个整数的函数 */
int sum(int a, int b)
{
printf ("value of a in sum() = %dn", a);
printf ("value of b in sum() = %dn", b);
return a + b;
}
上述代码编译执行后,会产生如下结果:
内存中全局变量和局部变量的区别:
初始化局部和全局变量
定义局部变量时,系统不初始化,必须自己初始化。定义全局变量时,系统会自动初始化如下:
数据类型初始化默认值
int
字符
”
浮动
空
正确初始化变量是一种很好的编程习惯,否则有时程序可能会产生意想不到的结果,因为未初始化的变量会导致内存位置中已经存在一些垃圾值。
搜索
复制
© 版权声明
本站下载的源码均来自公开网络收集转发二次开发而来,
若侵犯了您的合法权益,请来信通知我们1413333033@qq.com,
我们会及时删除,给您带来的不便,我们深表歉意。
下载用户仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,访问及下载者下载默认同意本站声明的免责申明,请合理使用切勿商用。
THE END
暂无评论内容