C语言深刨——关键字1

深入刨析关键字

C程序

#include<stdio.h>
int main(){
	printf("hello world");
	return 0;
}


在这里插入图片描述

声明与定义

什么是变量(是什么)
内存中开辟特定大小的空间,用来保存数据

如何定义变量(怎么用)
int x = 10;
char c = ‘a’;
double d = 3.14;
这个都会

为什么要定义变量(为什么)

计算机,因名知义,它就是用来计算的呀,而计算就必须得有数据啊,而在某一时间段不是全部的数据都用的到,如同:要吃饭,不是所有的饭菜都要立马被你吃掉。饭要一口一口吃,那么你还没有吃到的饭菜,就需要暂时放在盘子里。 这里的盘子,就如同变量,饭菜如同变量里面的数据。被用到的就是计算,没用到的数据就放在变量中暂存

变量的本质
我们现在已知:

  1. 程序运行,需要加载到内存中
  2. 程序计算,需要使用变量

那么,定义变量的本质:在内存中开辟一块空间,用来保存数据。(为何一定是内存:因为定义变量,也是程序逻辑的一部分,程序已经被加载到内存)
在这里插入图片描述

变量声明的本质:

比喻你和一女的表白,而且人家同意了,就是叫定义变量,你可以使用它,洗衣服做饭,而声明就是一个词“官宣”,发个朋友圈,证明一下他是女朋友
定义只能1次
声明可以多次 这就是属于秀恩爱范畴了

auto

变量的分类
局部变量:包含在代码块中的变量叫做局部变量。局部变量具有临时性。进入代码块,自动形成局部变量,退出代码块自动释放。
全局变量:在所有函数外定义的变量,叫做全局变量。全局变量具有全局性。
代码块:用{}括起来的区域,就叫做代码块
变量的作用域
作用域概念:指的是该变量的可以被正常访问的代码区域
局部变量,只在本代码块有效
在这里插入图片描述在这里插入图片描述

全局变量整个程序的运行期间都有效
在这里插入图片描述
还有一点如果全局变量和局部变量同名时,局部变量优先使用

变量的生命周期
**生命周期概念:指的是该变量从定义到被释放的时间范围,所谓的释放,指的是曾经开辟的空间”被释放“ 局部变量: 进入代码块,形成局部变量[开辟空间],退出代码块,"释放"局部变量
全局变量: 定义完成之后,程序运行的整个生命周期内,该变量一直都有效
**

作用域与生命周期

在这里插入图片描述

auto 相关

如何使用:
一般在代码块中定义的变量,即局部变量,默认都是auto修饰的,不过一般省略 默认的所有变量都是auto吗?不是,一般用来修饰局部变量
中断一下:后面我们所到的,局部变量,自动变量,临时变量,都是一回事。我们统称局部变量

在这里插入图片描述

register

其实,CPU主要是负责进行计算的硬件单元,但是为了方便运算,一般第一步需要先把数据从内存读取到CPU内,那 么也就需要CPU具有一定的数据临时存储能力。注意:CPU并不是当前要计算了,才把特定数据读到CPU里面,那样太慢了
在这里插入图片描述
register修饰变量
尽量将所修饰变量,放入CPU寄存区中,从而达到提高效率的目的
register修饰什么样的变量呢
1.局部的(全局会导致CPU寄存器被长时间占用)
2. 不会被写入的(写入就需要写回内存,后续还要读取检测的话,register的意义在哪呢?)
3. 高频被读取的(提高效率所在)
4. 如果要使用,请不要大量使用,因为寄存器数量有限

register 不能&地址
在这里插入图片描述

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值