代码改变世界

变量作用域9

2014-08-02 10:35  fanhongshuo  阅读(311)  评论(0编辑  收藏  举报

变量:
局部变量:如上所有的变量都是局部变量:把在函数体中定义的变量称为局部变量。
形参也是局部变量:

唯一的区别是形参用实参的值初始化,而普通局部变量需要
动手赋值。


变量的声明周期:从定义这个变量的地方开始到函数结束。
作用域(访问范围):定义这个变量开始到这个函数结束。

自动存储期限


static 修饰符
static int a=0;
静态局部变量:
生命周期:整个程序
作用域:访问范围:和普通变量的作用域一样。
特性:在函数执行结束之后,其数值不会释放。


全局变量:
定义在整个程序中的变量:
生命周期:整个程序的生命周期之内。
作用域:整个程序的范围都可以访问到。
区别:1.局部变量在未初始化的情况下 的值 为随机数
2.全局变量在未初始化的情况下的值默认为零。


1.全局变量容易造成名字的混乱。
2.全局变量无谓的浪费内存空间,使可执行程序变大。
3.与高内聚低耦合相违背。?
建议不要用全局变量。
练习:全局变量实现一个占空间的数据分配。

栈。(int stack【20】;int index)
1.将数据入站:push();
2.将数据出栈:pop();
3.查看栈顶元素:peak();
4.查看栈满和栈空的 full();empty();
5.

4/、块变量:定义在语句块中的变量。{。。。}
生命周期:定义变量的地方,到程序块结束的地方
消失。
作用域:程序块或语句块中。
for()
{
int i=0;
}
if()
{
int n=10; 块变量

}

归纳:
头文件 指令
#include 《stdio。h》
全局变量
int data;
自定义函数声明
int fun(void);

int main()
{
int data=2;
//局部变量
for()
}
自定义函数
int fun(void){
int f; //局部变量
}
变量的局部优先原则:
如果全局变量,局部变量和 快变量重名。
在块变量访问范围块变量优先,在局部变量访问范围内局部变量
优先,其余的都是全局变量。作用域规则。
练习:

1、猜数字的游戏:
用户输入:70 太大
50 太大了
15 太小了
25 恭喜猜对了。
srand(time(0));
rand(); //shengcheng yige suijishu

2、时钟
实现动态显示当前计算机时间。
15:28:30 一秒一变
unsigned int sleep(unsigned int seconds) unistd。h
使当前的进程休眠seconds 秒(不准确)
time()
time_time time(time_t *t);
time_t size_t //define size_t
time_t t=time(0); //t jiu shi 1970 1 1 0 0 0 到现在的
时间
int t=time(0);
time
t%60
t%3600/60
t/3600%24