关键字auto和register

目录

目标

关键字分类

关于程序

定义和声明

什么是变量

如何定义变量(如何使用)

变量定义的本质

定义与声明

最宽宏大量的关键字-auto

变量的分类--补充

变量的作用域-补充

auto相关

最快的关键字-register

寄存器存在的本质

register修饰变量


目标

  • 初步了解关键字的分类
  • 深刻理解变量
  • 深刻理解定义和声明
  • auto关键字的理解
  • 站在存储结构的角度,理解register

关键字分类

c90是32个关键字,c99是37个

关于程序

  • 任何程序在被运行之前都必须被加载到内存中
  • 在win中,双击的本质运行程序,将程序加载入内存(程序没被载入内存时,在硬盘中)

为什么要把程序加载入内存呢?

因为cpu访问内存快

定义和声明

什么是变量

内存中开辟特定大小空间,用于保存数据

所有的变量都要在内存的某个位置开辟空间

如何定义变量(如何使用)

int x=10;
char c='a';
double d=3.14;

变量定义的本质

在内存中开辟一块空间,用来保存数据

定义与声明

定义:开辟空间的 

声明:告知

最宽宏大量的关键字-auto

变量的分类--补充

局部变量:包含在代码块中的变量.具有临时性,进入代码块,创建局部变量,退出代码块,自动释放

全局变量:所有函数外部定义的变量,具有全局性

变量的作用域-补充

局部变量:只在本代码块内有效

全局变量:整个程序运行期间都有效

作用域:该变量的有效区域

生命周期:时间的概念,从开辟到释放

auto相关

一般在代码块中定义的变量-局部变量默认都是auto修饰的(只不过被省略了)

auto int a=10;前提示a是局部变量

最快的关键字-register

本质上把硬盘里的数据加载到内存中其实就是一种缓存技术

同样的,也可以把内存中的数据缓存到cache或者regisster中

 对于任何硬件而言,充当上游硬件的缓存

cpu访问数据的时候,以最小的成本,达到最高的效率

寄存器存在的本质

硬件层面上提高计算机运算效率,因为不需要再从内存中读取数据

register修饰变量

作用:尽量将所修饰变量放入寄存器中,从而达到提高效率的目的

什么样的变量适合采用register呢?

1.局部的(全局会导致cpu寄存器被长时间占用)

2.不会被写入的(写入就需要写回内存改变原存储的数据,后续还要继续读取检测的话,register便没有意义)

3.高频被读取的(提高效率所在)

4.如果要是用,请不要大量使用,寄存器数量有限

注意:一个变量被register修饰,可以正常使用,不可被寻址,也就是&,直接使用就可以了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

愿你生活有惊喜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值