C中的存储类

c中的存储类

在C语言中,变量和函数的特征是通过存储类来描述的,例如变量或函数的可见性和作用域。

C语言中有四种类型的存储类:自动变量、外部变量、静态变量和寄存器变量。

auto

Auto 存储类别是所有局部变量的默认存储类别。它是在调用函数时创建的。当函数执行完成时,变量会自动销毁。

它们也称为局部变量,因为它们是函数的局部变量。默认情况下,编译器会为它们分配垃圾值。

范围 – 自动变量是功能块的局部变量。

默认value – 垃圾值是默认的初始化值。

Lifetime – auto 变量的生命周期受定义它的块的限制。

这是一个 C 语言中 auto 变量的示例,

示例

 现场演示

#include int main() {   auto int a = 28;   int b = 8;   printf("The value of auto variable : %d

", a); printf("The sun of auto variable & integer variable : %d", (a+b)); return 0;}

输出

The value of auto variable : 28The sun of auto variable & integer variable : 36

extern

外部变量也称为全局变量。这些变量是在函数外部定义的。这些变量在整个函数执行过程中全局可用。全局变量的值可以通过函数修改。

范围 – 它们不受任何函数的约束。它们在程序中无处不在,即全局。

默认值 – 全局变量的默认初始化值为零。

生命周期 – > 直到程序执行结束。

这里是 C 语言中 extern 变量的示例,

示例

 现场演示

#include extern int x = 32;int b = 8;int main() {   auto int a = 28;   extern int b;   printf("The value of auto variable : %d

", a); printf("The value of extern variables x and b : %d,%d

",x,b); x = 15; printf("The value of modified extern variable x : %d

",x); return 0;}

输出

The value of auto variable : 28The value of extern variables x and b : 32,8The value of modified extern variable x : 15

static

静态变量仅初始化一次。编译器保留该变​​量直到程序结束。静态变量可以在函数内部或外部定义。

范围 – 它们是块的本地变量。

默认值 – > 默认初始化值为零。

生命周期 – 直到程序执行结束。

这里是 C 语言静态变量的示例,

示例

 现场演示

#include int main() {   auto int a = -28;   static int b = 8;   printf("The value of auto variable : %d

", a); printf("The value of static variable b : %d

",b); if(a!=0) printf("The sum of static variable and auto variable : %d

",(b+a)); return 0;}

输出

The value of auto variable : -28The value of static variable b : 8The sum of static variable and auto variable : -20

register

寄存器变量告诉编译器将变量存储在CPU寄存器中,而不是内存中。经常使用的变量被保留在寄存器中,它们具有更快的可访问性。我们永远无法获取这些变量的地址。

作用域 – 它们局限于函数内部。

默认值 – 默认初始化值是垃圾值。

生命周期 – 在定义它的代码块执行结束之前。

这里是C语言中寄存器变量的一个示例:

示例

 在线演示

#include int main() {   register char x = 'S';   register int a = 10;   auto int b = 8;   printf("The value of register variable b : %c

",x); printf("The sum of auto and register variable : %d",(a+b)); return 0;}

输出

The value of register variable b : SThe sum of auto and register variable : 18

以上就是C中的存储类的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1444977.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 22:03:52
下一篇 2025年12月15日 15:28:42

相关推荐

  • 在C语言中,寄存器存储类是什么?

    在C编程语言中有四个存储类,分别是: autoexternstaticregister 寄存器变量 关键字是register。 寄存器变量的值存储在CPU的寄存器中,而不是存储在内存中,普通变量存储在内存中。 寄存器是CPU中的临时存储单元。 立即学习“C语言免费学习笔记(深入)”; 它们允许寄存器…

    2025年12月17日
    000
  • ​静态变量和动态变量

    静态变量和动态变量     静态变量 就是在定义的时候,有static修饰的变量,形式为 static TYPE var_name = init_value; 动态变量,形式为 TYPE var_name = init_value; 即没有static 修饰。其中的=init_value均可省略。 …

    2025年12月17日
    000
  • C#学习日记20—-static静态变量 与 常量

     在上一篇  委托(delegate)类型     中我定义public方法的时候使用了 static 关键字,导致后来无法通过 对象.方法名  的形式访问此方法,这一篇我们就具体学习下 static 静态变量。   变量:       在学习static静态变量之前,我们还是有必要来了解 变量 的…

    2025年12月17日
    000
  • Golang如何定义全局变量与局部变量

    全局变量在函数外定义,作用域为整个包,如GlobalCounter;局部变量在函数内定义,仅在函数或代码块内有效,如calculate中的sum和count。 在Go语言中,全局变量和局部变量的定义主要通过变量声明的位置来区分。理解它们的作用域和生命周期对编写清晰、安全的代码非常重要。 全局变量的定…

    2025年12月16日
    000
  • php怎么用var_PHP变量(var)声明与作用域使用方法

    答案:PHP变量以$开头,通过赋值自动确定类型,支持字符串、整型、布尔型等;局部变量在函数内有效,全局变量需用global关键字在函数中访问,静态变量用static声明以保持多次调用间的值,超全局变量如$_GET、$_POST、$_SESSION和$_SERVER可在任何作用域直接访问。 如果您在编…

    2025年12月12日
    000
  • php中全局变量和局部变量有什么区别_php中全局与局部变量作用域详解

    局部变量在函数内定义并仅限函数内使用,函数执行完后即销毁;全局变量在函数外定义,可在脚本的非函数区域访问,但在函数内需通过global关键字或$GLOBALS数组才能访问和修改。 在PHP中,变量的作用域决定了它在脚本的哪些部分可以被访问。全局变量和局部变量的主要区别在于它们的定义位置和可访问范围。…

    2025年12月12日
    000
  • PHP中如何创建静态变量?

    在php中创建静态变量的方法是:在类的方法内使用关键字“static”定义变量。具体步骤如下:1. 在类的方法内使用“static”关键字定义变量,例如“static $count = 0;”。2. 静态变量会在方法调用之间保持状态,每次调用方法时,变量的值会保留并可以被修改。静态变量在内存中的生命…

    2025年12月10日
    000
  • PHP中如何传递闭包变量?

    在php中传递闭包变量使用use关键字。1)通过use关键字引入外部变量到闭包内。2)闭包捕获变量的引用或值,引用会随外部变量变化。3)闭包访问定义时作用域变量,不能访问调用时作用域变量。 谈到PHP中如何传递闭包变量,这个问题其实涉及到PHP中的匿名函数和闭包的概念。在PHP中,闭包可以捕获外部变…

    2025年12月10日
    000
  • php函数中变量作用域错误解析及优化策略

    在 php 中,函数变量作用域错误发生于局部变量覆盖全局变量时。优化策略包括:使用全局关键字将局部变量声明为全局变量通过 use 语句在闭包中访问外部变量保持匿名函数简单,仅在直接父作用域中访问外部变量将外部变量作为函数参数传递,避免直接修改 PHP 函数中变量作用域错误解析及优化策略 在 PHP …

    2025年12月9日
    000
  • PHP函数作用域对变量访问优先级的意义

    在 php 函数作用域中,变量访问优先级按顺序如下:函数内部声明的变量全局变量(使用 global 关键字访问)超全局变量(如 $_server)函数内部的变量优先级最高,其次是全局变量和超全局变量。函数外的变量无法访问函数内的局部变量。 PHP 函数作用域对变量访问优先级的意义 在 PHP 中,变…

    2025年12月9日
    100
  • PHP函数作用域对变量声明的影响

    php 函数作用域影响变量可见性:函数内部的局部变量优先级高于全局变量。函数内部同名变量会覆盖全局变量。函数外部无法访问局部变量。 PHP 函数作用域对变量声明的影响 PHP 中的函数作用域决定了变量在函数内部和外部的可见性。 函数内部和外部的变量 立即学习“PHP免费学习笔记(深入)”; 局部变量…

    2025年12月9日
    000
  • 函数中返回静态变量时有哪些潜在风险?

    在函数中返回静态变量存在以下风险:竞争条件:多线程访问时可能发生。内存泄漏:返回指向外部分配内存的变量时可能发生。隐藏依赖:隐藏函数对外部数据的依赖,降低代码的可维护性和可测试性。 函数中返回静态变量的潜在风险 在函数中返回静态变量是一个常见的做法,但它也存在一些潜在的风险。 什么是静态变量? 静态…

    2025年12月9日
    000
  • PHP 函数中不同传递方式对变量作用域的影响

    PHP 函数中不同传递方式对变量作用域的影响 在 PHP 中,函数的参数可以通过多种方式进行传递,分别是: 值传递(Pass by Value):将变量的值复制一份传递给函数,修改函数内的副本不会影响函数外的变量。引用传递(Pass by Reference):将变量的引用传递给函数,修改函数内的变…

    2025年12月9日
    100
  • PHP 函数中哪些变量类型是静态变量?

    php 中的静态变量是函数范围内的持久变量,在函数调用间保持其值。要声明静态变量,可以在其前加上 static 关键字。这使得静态变量具有数据持久性,在不同位置跟踪数据,同时节省内存资源。此外,php 还支持全局静态变量,它们在程序的整个生命周期中保持其值,并可以在任何作用域内访问。 PHP 中静态…

    2025年12月9日
    000
  • PHP 函数中引用参数与变量作用域的关系

    php函数中的引用参数和变量作用域相关性:值参数按值传递,副本更改不影响原始变量;引用参数按引用传递,副本更改会影响原始变量;值参数只在函数内部可用;引用参数在函数内外均可用;更改引用参数会影响函数外部原始变量的值。 PHP 函数中引用参数与变量作用域的关系 简介 PHP 函数的参数可以是引用参数或…

    2025年12月9日
    000

发表回复

登录后才能评论
关注微信