目录
作用域是程序中定义的变量所存在的区域,超过该区域变量就不能被访问。C 语言中有三个地方可以声明变量:
一、局部变量
示例
test39.c
#include <stdio.h>
int main ()
{
// 局部变量声明
int a, b, c;
// 初始化
a = 3;
b = 5;
c = a + b;
printf ("a = %d, b = %d and c = %d\n", a, b, c);
return 0;
}
运行效果
二、全局变量
示例
test40.c
#include <stdio.h>
// 全局变量声明
int g;
int main ()
{
// 局部变量声明
int a, b;
// 初始化
a = 3;
b = 5;
g = a + b;
printf ("a = %d, b = %d and g = %d\n", a, b, g);
return 0;
}
运行效果
注意事项
test41.c
#include <stdio.h>
double d=3.14; // 全局变量声明
void func1(); // 声明一个自定义函数
int main()
{
printf("位置一 d=%lf\n",d);
func1();
printf("位置二 d=%lf\n",d);
}
void func1()
{
double d=3.1415; // 局部变量的声明
printf("位置三 d=%lf\n",d);
}
在 test41.c 中,定义了全局变量 d,在func1()函数中,定义了局部变量 d,func1()函数运行的时候,会使用自己的局部变量d,不会使用全局变量d,所以main函数中位置二输出d的值是3.14
运行效果
再举一个简单的栗子 test42.c
#include <stdio.h>
// 全局变量声明
int g = 3;
int main ()
{
// 局部变量声明
int g = 5;
//局部变量名与全局变量名相同,就会屏蔽全局变量而使用局部变量
printf ("g = %d\n", g);// g 等于 5
return 0;
}
三、形式参数
举个栗子
test43.c
#include <stdio.h>
// 全局变量声明
int a = 3;
int main ()
{
// 在主函数中的局部变量声明
int a = 5;
int b = 8;
int c = 0;
int sum(int, int); //函数的声明
printf ("a = %d\n", a);
c = sum( a, b);
printf ("c = %d\n", c);
return 0;
}
// 函数的定义
int sum(int a, int b)
{
printf ("a = %d\n", a);
printf ("b = %d\n", b);
return a + b;
}
运行效果
全局变量与局部变量在内存中的区别
四、初始化局部变量和全局变量
数据类型 | 初始化默认值 |
---|---|
int(整形) | 0 |
char(字符型) | '\0' |
float(单精度浮点型) | 0 |
double(双精度浮点型) | 0 |
pointer (指针)下期介绍 | NULL |
本期的内容到这里就结束了,下期再见!