Chinaunix首页 | 论坛 | 博客
  • 博客访问: 161689
  • 博文数量: 55
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 582
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-17 19:31
文章分类

全部博文(55)

文章存档

2010年(19)

2009年(36)

我的朋友

分类: C/C++

2009-10-21 18:37:20

作用域:空间概念,针对有效范围而言
生存期:时间概念,针对存储而言 
 
 
 
作用域是指变量所起作用的范围。

  在过程内声明,是局部变量,只能在过程中起作用。

  在过程外声明,是全局变量,在整个程序中使用。

生存期:存活期

  局部变量函数或过程结束后,生命周期也就结束了。

  全局变量在整个角本运行结束才结束

  局部变量是用于临时存取数据的

 

 

作用域:变量名有效的范围
  存在期:变量在程序中存在的时期.
  存储方式:auto, register, extern, static
  存储空间类型: (stack):自动分配和清除的变量.:局部变量和函数参数等
  堆(heap):malloc等函数分配的空间.
  (c++里这叫自由存储区,而把new得来的空间叫做堆)
  全局/静态存储区:存储全局变量和静态变量.
  常量存储区:存储常量(常量字符串,magic number),不允许修改.

 

类型

补充

作用域

存在期

初始化

外部定义(函数外面)

全局变量(外部变量)

为了后定义先使用:可用extern外部变量说明.

全局

全程

一次初始化

静态外部变量

 

文件

全程

外部数组

 

全局

全程

静态函数

 

文件

n/a

n/a

普通函数

 

全局

n/a

n/a

内部定义(函数里面)

静态局部数组

 

局部

全程

一次初始化

静态局部变量

在函数外只能赋一次值

局部

全程

一次初始化

普通局部变量(自动变量)

 

局部

局部

 

  凡是存在期为全程的对象(变量,数组等)都具有一次初始化的特性,即只在程序开始前初始化一次(之后再遇到初始化语句就会跳过,当然其他赋值语句不会跳过).
  它们都分配在全局/静态存储区.
  它们初始化时的右值可以是一个初始化表达式(由文字量/符号常量/基本运算符(赋值和自增减运算符例外)组成).若没有初始化语句,会自动置零(包括数组).

 

 


阅读(778) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~