c语言中的变量的作用域和注意事项

本文详细介绍了C语言中的几种变量类型,包括普通局部变量、全局变量、静态局部变量和静态全局变量,以及它们的作用域、生命周期和存储区域。同时,还探讨了常量的定义和使用,包括const修饰的全局和局部常量以及字符串常量的特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

普通局部变量

普通全局变量

静态局部变量

静态全局变量

常量


普通局部变量


定义形式:在{ } 里面定义的变量

作用范围:离他最近的{ }之间

生命周期:离他最近的{ }结束 局部变量被释放

存储空间:栈区

注意事项: 不初始化内容随机

普通全局变量


  • 定义形式:在函数外定义的变量 
  • 作用范围:当前源文件以及其他源文件
  • 生命周期:整个进程
  • 存储空间:全局区
  • 注意事项: 不初始化内容为0
  • 特点:c语言全局变量默认加了关键字 extern
    •   外部连接属性

静态局部变量


定义形式:在{ }里面定义 且加static修饰 

作用范围:离他最近的{ }之间

生命周期:整个进程

存储空间:全局区

注意事项: 不初始化内容为0

静态全局变量


  • 定义形式:函数外定义 且用static修饰 
  • 作用范围:只在当前文件有效
  • 生命周期:整个进程
  • 存储空间:全局区
  • 注意事项: 不初始化内容为0
  • 特点:运行前分配内存
    •  内部链接的属性

常量


  • const 修饰的全局常量
    • 直接修改 失败
    • 间接修改 语法通过 运行失败,收到常量区保护
  • const 修饰的局部常量
    • 直接修改 失败
    • 间接修改 成功  局部变量实在栈上面
  • 字符串常量
    • vs下相同的字符串常量可以共享,相同字符串可以看一个
    • 字符串常量有的编译器可以修改,vs是不可以修改,不同编译器可能有不同的结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值