【基础知识】-- static,const 关键字

关键字



一、static关键字

1.static的声明

static关键字可以用于改变变量、函数或成员的作用范围或生命周期。

  1. 局部变量:当在函数内部使用static关键字声明一个变量时,该变量将成为静态局部变量。静态局部变量在函数调用结束后仍然存在,并且在下次调用函数时保持其值不变。
  2. 全局变量:当在全局作用域(函数外部)使用static关键字声明一个全局变量时,该变量将成为静态全局变量。静态全局变量的作用范围仅限于声明它的源文件,在其他文件中无法访问。
  3. 函数声明和函数定义:当在函数声明和函数定义中使用static关键字修饰函数时,该函数将成为静态函数。静态函数只能在声明它的源文件中调用,无法被其他源文件调用。
  4. 结构体成员:当在结构体或联合的成员前面使用static关键字时,该成员将成为静态成员。静态成员只有一个实例,所有的结构体实例都共享这一个静态成员,也就是说对静态成员的修改将对所有实例产生影响。可以通过结构体类型访问静态成员,而不需要实例化结构体。

2.static变量存储的位置

static存放在进程内存中的Data segment中,如图

在这里插入图片描述


二、const关键字

1.const的声明

static关键提供了一种约束和保护变量的机制,提高了代码的安全性和可维护性

  1. 常量:const 关键字可以用于声明一个常量,将变量的值设置为不可修改。
  2. 结构体:对于 const 声明的结构体实例,无法通过该实例修改结构体的成员变量的值,只能用于只读操作。任何试图修改成员变量的操作都将导致编译错误。

2.编译优化

使用 const 关键字可以帮助编译器进行优化。编译器可以在编译时将 const 变量的值直接替换到代码中,避免了运行时的计算。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值