存储类、链接和内存管理

来源:互联网 发布:海通证券行情软件 编辑:程序博客网 时间:2024/06/05 09:17

一、作用域

1.作用域描述了程序中可以访问一个标识符的一个或多个程序。

2.在一个内部代码块中声明的变量,其作用域只局限于该代码块:


传统上具有代码块作用域的变量都必须在代码块的开始处进行声明。

3.函数原型作用域:

int mighty(int mouse ,double large);

函数原型作用域从变量定义处一直到原型声明的末尾。

4.文件作用域(全局变量)

具有文件作用域的变量从它的定义处到包含该定义的文件结尾处都是可见的。

二、存储时期

1.存储类


2.如果在内层代码块定义的名字是内层代码块所使用的变量,称之为内层定义覆盖了外部定义,但当运行离开内层代码块时,外部变量重新恢复作用。




三、具有代码块作用域的静态变量

静态是指变量的位置固定不动。具有文件作用域的变量自动(也是必须的)具有静态存储时期。从一次函数调用到下一次调用,计算机都记录着他们的值。试用存储类说明符static在代码块内声明。


上述代码中stay只在编译trystat()时被初始化一次,而fade每次都被初始化。

四、具有外部链接的静态变量

1.在使用外部变量中通过使用extern关键字来进行声明,如果是在别的文件中定义的则extern声明该变量就是必须的。

2.将两个文件放在同一个文件夹或工程中,编译时使用gcc 文件名A 文件名B 来实现编译。或者使用 #include "文件名"    这个头文件来实现文件的调用。

3.一个变量只可以有一个定义声明,但是用extern的声明是一个引用声明,可无限用。

五、const限定词

1.可以在一个声明中不止一次的使用同一限定词,多余的将被忽略:

const const const int n = 6;// 相当于 const int n = 6;

2.如果生命中带有const关键字,则不能通过赋值、增量或减量运算来修改他们的值。然而可以初始化一个const变量。在初始化以后,不可以在改变它。



0 0
原创粉丝点击