c语言的变量

来源:互联网 发布:淘宝网儿童棉服 编辑:程序博客网 时间:2024/04/30 10:12

数据变量的三个属性:作用域、连接属性和存储类型。程序代码中的变量在编写是要考虑三个属性,同时程序要经历编译,链接和运行时的内存分配。

1.作用域:在编译时有四种不同类型的作用域---文件作用域,函数作用域,代码块作用域和原型作用域

1)、代码块作用域:{}内的代码段。

2)、文件作用域:以文件为单位,可以通过#include<>来访问其他文件。

3)、原型作用域:只适用于函数中的参数。

4)、函数作用域:它只适用于语句标签,goto。

2.连接属性:当程序编译成许多模块需要连接,变量的连接属性需要关心。连接属性有三类——external,internal和none。

关键字extern和static用来修改连接属性。转让两个关键词声明个体时,以第一次为主,以后的操作无效。

3.存储类型:存储变量——普通内存、运行时堆栈和硬件寄存器。

1)、凡是代码块以外的声明的变量总是存储在静态内存中(静态变量),静态变量的内存分配在程序执行前分配

2)、凡是在代码段的以内默认分配的变量在运行时中的堆栈分配,但可以通过static自动变为静态变量。

4.static关键字

1.当它用于函数定义时,或用于代码块外的变量声明时,static关键字用于修改标识符链接属性,从external改为internal,但标识符的存储类型和作用域不受影响。

2.当它用于代码块内部时,static关键字用于修改变量的存储类型,从自动变量修改为静态变量,单变量的连接属性和作用域不受影响。