变量及数据类型

变量及数据类型

C语言要求在定义所有变量时都要指定变量的类型。类型,就是对数据分配存储单元的安排,包括存储单元的长度(占多少字节)以及数据的存储形式

注: 用计算机进行的计算不是抽象的理论值的计算,而是用工程的方法实现的计算,在许多情况下只能得到近似的结果

1. 变量

变量代表一个有名字的、具有特定属性的存储单元。它用来存放数据,也就是存放变量的值。在程序运行期间,变量的值时可以改变的。

变量必须先定义,后使用。在定义变量时指定该变量的名字和类型。定义变量的一般格式如下:

存储类别 数据类型 变量名1,变量名2,······,变量名n

存储类别指定变量时存放在静态存储区还是动态存储区,存储类别可以省略,因为局部变量默认的存储类别是auto(自动的),可以省略。

2. 整型数据

  1. 整型数据的分类

    1. 基本整型(int)

      整型数据在存储单元中是通过整数的补码形式存放的

      一个正数的原码、反码和补码是相同的,都等于此数的二进制形式

      一个负数的补码是先将此数的绝对值写成二进制形式,然后对所有二进位按位取反,再加1

      在存放整数的存储单元中,最左面一位是用来表示符号的,如果该位为0,表示数值为正;如果该位为1,表示数值为负

    2. 短整型(short int)

    3. 长整型(long int)

    4. 双长整型(long long int)

    C标准没有具体规定各种数据类型所占用存储单元的长度。这是由各编译系统自行决定的。C标准只要求int型数据长度不长于long型,并且int型不短于short型

  2. 整型变量的符号属性

​ 变量值在存储单元中都是以补码的形式存储的,存储单元中的第一个二进制位代表符号位

  1. 只有整型(包括字符型)数据可以加signed或unsigned修饰符,实型数据不能加
  2. 对无符号整型数据由"%u"格式输出。%u表示用无符号十进制数的格式输出
  3. 如果既未指定为signed也未指定unsigned,则默认为有符号类型
  4. 无符号整型变量中可以存放的正数范围比一般整型变量中的正数范围扩大一倍
  1. 字符型数据

    1. 字符与字符代码、

各种字符集(包括ASCII字符集)的基本集都包括128个字符其中包括:

  • ​ 字母:大写字母A~Z,小写字母a~Z
  • 数字:0~9
  • 专门符号:29个,!、"、#、.、&、’、(、)、*、+、-、/、:、;、<、=、>、,、?、[、]、\、^、_、{、}、|、~、%。
  • 分隔符:空格、水平制表符(TAB)、垂直制表符、换行、换页
  • 不能显示的字符:空(null)字符(以\0表示)、警告(以\a表示)、退格(以\b表示)、回车(以\r表示)

在C语言中,指定用一个字节(8位)存储一个字符(所有紫铜都不例外)。此时,字节中的第一位置为0,作为校验位

  1. 字符变量

​ 字符变量使用类型符char定义

在使用有符号字符型变量时,允许存储的值为-128~127,但字符的代码不可能为负值,所以在存储字符时实际上只用到0~127这一部分,其第一位都是0

  1. 浮点型数据

​ 实型数据是用来表示具有小数点的实数的。在C语言中,实数也称为浮点数,其是以指数形式存放在存储单位中的。一个实数表示为指数的可以由多种形式。

​ 在指数形式的多种表示方式中,把小数部分中小数点前的数字为0并且小数点后第一位数字不为0的表示形式称为规范化的指数i形式。一个实数只有一个规范化的指数形式。浮点数类型包括float(单精度浮点型)、double(双精度浮点数)、long double(长双精度浮点数)。

1. float型(单精度浮点型)、

​ 编译系统为每一个float型变量分配4个字节,数值以规范化的二进制数指数形式存放在存储单元中。在存储时,系统将实型数据分成小数部分和指数部分分别存放。小数部分的小数点前面的数为0。

在计算机中使用二进制数来表示小数部分以及用2的幂次来表示指数部分的

​ 由于用二进制形式表示一个实数以及存储单元的长度是有限的,因此不可能得到完全精确的值,只能存储成有限的精确度。小数部分占的位数越多,数的有效数字越多,精度也就越高。指数部分占的位数越多,则能表示的数值范围越大。

  1. double型(双精度浮点型)

注:再C语言中进行浮点数的算数运算时,将float型数据都自动转换为double型,然后在两个double型数据之间进行运算

  1. long double型(长双精度浮点型)
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值