详解static关键字(C语言)

目录

一  static关键字

二  static关键字的使用

三  static关键字的具体使用

1、修饰局部变量

2、修饰全局变量

3、修饰函数


一  static关键字

static是C/C++中的修饰符,用来修饰变量或函数

二  static关键字的使用

  1. 修饰局部变量 -- 静态局部变量
  2. 修饰全局变量 -- 静态全局变量
  3. 修饰函数 -- 静态函数

三  static关键字的具体使用

1、修饰局部变量

(1)不使用 static 修饰局部变量,结果如下:

(2)使用 static 修饰局部变量,结果如下:

 输出不同结果的原因:

  1. static 修饰局部变量,改变了局部变量的存储属性(变为静态局部变量)
  2. 局部变量原本存储在内存的栈区,被static 修饰之后的局部变量存储在内存的静态区
  3. 在局部作用域结束时,被static 修饰的变量并没有销毁,等下一次进入局部作用域时就会延用上一次的结果值

注:被static 修饰的局部变量的作用域不会被改变

引入内存:

内存包括三个区(栈区,堆区,静态区)

  • 栈区(局部变量,函数的形式参数--临时的变量)
  • 堆区(动态内存分配,malloc,calloc,realloc,free)
  • 静态区(静态变量,全局变量)

2、修饰全局变量

(1)未被static修饰

 (2)被static 修饰的全局变量

 输出结果失败的原因:

  1. 全局变量具有外部性链接属性;被static 修饰的全局变量转变为内部性链接属性,被私有化(被static 修饰的全局变量,只能在自己所在的源文件.c内部才可以被使用)

3、修饰函数

(1)未被static 修饰的函数

 (2)被static 修饰的函数

 输出结果失败的原因:

  1. 函数具有外部性链接属性;被static 修饰的函数转变为内部性链接属性,被私有化(被static 修饰的函数,只能在自己所在的源文件.c内部才可以被使用)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值