常量和变量的存储类型

常量的样子和变量完全一样,只是它们的值不能被修改,可以使用const关键字来声明常量。
int  const   max_eleemnts = 50;
max_eleemnts  是一个值不能被修改的变量
所以数组的长度不可以使用
但是此时可以用 #define   MAX_ELEEMNTS  50
      int  arr[MAX_ELEEMNTS ];就是正确的声明。
     而int   arr[max_eleemnts];就是一个错误的声明。
           

变量的存储类型是指存储变量值的内存类型
凡是在任何代码块之外声明的变量     ------------   静态区(静态变量)
静态变量在程序运行之前创建,在程序的整个执行期间始终存在,它始终保持原先的值;


在代码块内部声明的变量的缺省类型是自动的,存储在堆栈中,(自动变量,无链接属性)
这些自动变量,在程序执行到声明自动变量的代码时,自动变量才被创建,当程序的
执行流离开该代码块时,这些自动变量将会被自动销毁。

在代码块内部声明的变量,如果给它加上static,可以将它的存储类型转化为静态,具有静态变量的一切特性
函数的形参不能声明为静态。



static关键字:
当用于不同的上下文环境时,它具有不同的意思:
1.当用于函数定义时,或用于代码块之外的变量声明时,static关键字用于修改标识符的链接属性,从external改为internal,
但标识符的存储类型和作用域不受影响,这种方式声明的变量或者函数只能在声明它们的源文件中访问。
2.当它用于代码内部的变量声明时,static关键字用于修改变量的存储类型,从自动变量修改为静态变量,但变量的链接属性
和作用域不受影响,这种方式声明的变量在程序执行之前创建,在程序的整个执行期间一直存在,在代码块执行完毕后销毁。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值