局部变量的三种类型auto,static和register

局部变量的三种类型auto,static和register

一:auto类型的变量        
        auto类型的变量也称作自动型变量,自动型变量是在动态存储去内分配单元,函数返回的时候,编译系统会 释放这些存储单元 ,就是说当函数调用结束后,自动类型变量就会 不复存在 。        
        在c语言中我们可能很少见到auto这个关键字,原因是当我们没有 显式(例如static int i=0;) 的指定局部变量的存储类型的时候,系统就会 默认 变量是自动型变量,所以我们根本不用去特意的写上auto这个关键字。
二:静态类static
        用static这个关键字修饰之后的局部变量,是存储在 静态区 的,也就是说当我们想要保留一个局部变量 ,而不是像auto型那样出了函数之后就销毁的时候,我们就可以在定义变量的时候用static这个关键字来修饰变量。
        静态局部变量只在第一次定义的时候赋初值,如果在定义的时候 没有赋值 的话 默认赋值为0或者'\0'(根据实型还是字符型)。
三:寄存器变量 register
        一般情况下变量是存储在内存中的,当要使用变量进行运算的时候,控制器就会发出指令将内存中的该变量送到运算器中,这样就有一个问题:当我们频繁的使用这个变量的时候,多次的拿取就会造成效率的下降,所以就有了寄存器这种东西。
  寄存器是在运算器中,寄存器变量参与运算的时候不用在内存中存取,这样就 提高了执行的效率
  但是,寄存器的大小是 有限 的,不能无限的定义寄存器变量,当 寄存器大小不足 的时候,即使使用了 register这个关键字该变量也不会存储到寄存器中
  总的来说,寄存器变量就是适合那种多次的频繁使用的变量,用于 提高运算的效率
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值