C语言笔记系列之二——变量

1.变量:内存中的一个存储单元称之为一个变量。

2.变量名

  命名法:由数字、字母以及下划线构成,以字母或下划线作为起始,可包含其中的一种两种或者三种。

  变量值:变量单元中存储的常量值。

  注意:在C语言中不可以定义同名变量,命名变量名时不可以和保留字相同。

3.变量的定义:int a;int提供大小,变量名提供名称。

4.如下程序片段:

int x = 32767; x = x + 1; printf("x = %d", x);输出是多少?

解答:输出为-32768。在各种码值表示方法中,补码形式表示出来的0的形式是唯一的,其他的码值表示方法会出现正零和负零的现象。所以定义符号位为1其余各位均为0的补码形式表示的值为负的最大值。本题当中,32767会以补码形式存放在x单元中,x的最高位为0是表示正的符号位,当给x加1之后,依次进位,使x中存储的二进制变为第一位为1,其余各位均为0的形式,所以输出的是负的最大值,这种全1形式的补码C语言规定为负的最大值。

5.长整型变量:long x = 36L;

由于长整型单元可以存储的范围可以包含基本的整型数,所以习惯上在长整型数后面加上大写或者小写的L。

长整型的输出控制符:%Ld, %ld

注意:如果将long型的变量赋值给int型变量,那么存入的只有低位部分。

6.短整型变量:short x;short int x;

7.无符号型:unsigned int x;unsigned x;(这样定义的话也是定义为unsignedint)

无符号值:将一个有符号值的补码值的符号位看做数值位,0和正数部分,对应的无符号值不变,当值为负数时,因为符号位的影响值会发生变化。考虑补码的得到方式是将一个数的原码除符号位外其余位取反得到反码,反码加上原码应该是一个每个二进制位都是1的二进制数据,但是由于补码取反之后还要加1,所以对于负数有:无符号值- 有符号值 = 2^N,N代表这个数的存储空间大小,注意这里没有减1操作。

8.实型变量float:float x;

float最多可以存储7位有效数字,输出格式%f。

如果定义float f =111.111111;那么实际存储在内存中的数据是111.1111,后面的两位被舍去(不是四舍五入)。

注意:对于浮点型变量的输出,计算机默认保留六位小数输出,但是数值并未发生变化,还是按7位有效数字存储。如果有效数字并没有达到小数点后六位,那么不足的位会输出随机值(不一定是0)。

9.双精度实型变量double:double x;

double类型可以接收15或者16位有效数字(具体是15位还是16位和机器有关,但一般都能接收到16位),屏幕上输出仍然是六位小数输出。

10.字符型变量:char x;

输出格式:%c

存储空间:一个字节,注意char类型变量可以存储负数。

11.不同类型变量之间的赋值:

(1)将整型赋值给实型,那么首先将整型数变为实型,然后赋值。

(2)单精度实型赋值给双精度实型,那么首先将单精度实型扩展为双精度实型,然后赋值。

(3)将实型赋值给整型:先舍去小数部分,将整数部分存储到整型单元。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值