C语言点滴之——变量定义_01

开篇

本人由于工作需要,需要对C语言进行全方位的研习,所以决定记录下自己在学习过程中对C语言的理解,也算是对自己工作内容的一个总结本文为作者(Daly.Hu)纯手工打造, 记录过程中难免有疏漏或者错误的地方,烦请各位亲们指正,也希望各位亲们尊重本人劳动成果,转载请注明出处,小弟在此叩谢。

正文

定义变量

我们通常所说的“定义变量“是什么意思?我们抛开现象看本质,这个过程可以分成几个步骤, 第一:分配内存空间,内存空间的大小取决于我们所给定的数据类型,第二:给这个内存空间取一个名字,这个名字就是我们的变量名称,第三:这个变量默认具有一种数据类型的表示方式。

首先看变量内存空间大小:

看一下运行结果


以上运行结果表明变量c具有一个字节的内存空间

我们现在知道了内存空间有多,我们如何知道我们的内存编号(地址)是多少呢?代码如下

看一下运行结果:

地址格式的表示方式为16进制

一个字节的内存空间有多大?8!有效数据范围用二进制表示就是0000_0000 to 1111_1111,十进制为0 to 255

真的是这样码?看一个例子:

猜猜输出是什么? 看实际输出:

怎么变成负数了(-127)?这是因为我们“定义”变量cc的时候除了分配内存之外,还给指定了数据类型char, 它表示由它产生的变量符号字符型我们对它赋值129,换算成二进制为0b1000_0001由于变量cc是有符号类型,所以最高位对于变量cc来说就变成了符号位,可以想象为“0b-000_0001”,等等,这样的话不是-1吗?怎么会变成-127?这是因为在计算机里面,负数是用补码的形式来表示的,至于补码是什么东西,网上和各种计算机专业书籍上有详细介绍,在这里不作过多的解释,我们只需要知道补码是原码按位取反之后再加1即可1000_0001的补码为1111_1111,符号位占据最高位,所以剩下的数字用十进制表示就是127,组合在一起就是-127char数据的十进制有效数字范围就变成了-128——+127,不是0——255

变量一出生难道数据类型就死了吗?看例子:

用(unsigned char)将变量cc临时转换为无符号字符型,也就是强制类型转换,看一下输出结果:

看到变化了吗?强制类型转换在实际工作中的使用频率非常高,因为我们的数据在内存中都是以二进制方式存储,数据类型不过是我们给予它的一个视角罢了,我们想用什么角度看它就用什么角度看它,计算机无权干预这也是我们常说C语言灵活的原因之一。





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值