第三章 c 语言的数据类型

一、为什么要有数据类型

数据类型的必要性(数据类型不一样对于编译器来说,根据他的数据类型来判断他的执行操作)

二、常量、变量

常量(在运行过程中,值不能发生改变)

变量(在运行过程中,值能发生改变)

三、变量为什么可以发生改变

任何变量都有各自的内存空间,分配到ram

RAM (random access memory) 随机访问存储器 (因为编号是随机开始,所以随机开始)内存指的是ram

ROM(read only memory)只读随机存储器,(外存)现在可读可写,掉电不丢失

四、内存空间

字节是用来存储空间最小单位,一个字节等于8bit。

五、标识符

标识符:i,j,k(标识符就是一个名字)

名字起名要求:名字,数字,下划线,标识符第一个位置只能是字母或者下划线,不能是数字

define n 数字 符号常量(宏定义)

注意

  • Google要求的符号常量大写,二类字(include。。。。)实际上可以用标识符,但是习惯上不用。
  • 关键字:不能做标识符。
  • 不能在当下定义相同两个标识符
  • 变量名区分大小写
  • int $$$(特殊字符)(不具备可移植性)(要完全按照C语言来编写,这样的代码可以在其他编译器下进行移植)

常见关键字如下

六、数据类型
1、整型数据

整型常量; 有十进制,八进制 0,十六进制0x 注意: c 语言没有二进制代码

整型变量:有以下几种类型

  • short   2个字节     [-32768,32767]
  • unsigned short   2个字节  [0,2^16-1]
  • int   4个字节   [-2^31,2^31-1]
  • unsigned int    4个字节   [0,2^32-1]
  • long   8个字节   [-2^63,2^63-1]
  • unsigned long    8个字节  [0,2^64-1]
  • long long   8个字节

注意

①long long =long 字节长度都是八字节,虽然用法一样,但是不是同一个类型。

②无符号整型:针对有些数据只有正整数,不存在负数

③整型溢出,超过所容纳的范围。字节数不一样,所存储的范围不一样

④我们所想的数字在内存中的排列可能与实际内存中的排列不符合,这是因为:

小端,倒放(数据)低低高高) 

大端,正放(0低高高低)

常见体系所用的模式:X86 ARM架构 采用小端模式。51 大端模式 

2、浮点型数据

浮点型常量

表示形式:1、十进制小数;2、指数形式

注意

e的右边必须是整型(可正可负),不能是小数。否则会报错,如下图所示,这种写法是错误的。

f=123e0.5

浮点型变量

float 单精度

double 双精度

存储的规则由IEEE组织小数存储,规则如下

先将数字写成二进制,再用科学计数法,将小数点进行移动,小数的前面只保留一位小数。最后的阶码是在计算的次方数值基础上加127

注意

浮点型,计算的结果在里面存储的时候有可能没有办法存储完全,所以存储的值比实际值较小

比如

要想比较,在C/c++里面类型要匹配,要么是兼容类型。

3、字符类型

字符:常用来装字符

因为char c 与int 兼容,所以char 也支持加减

  • signed  char  [-2^7,2^7-1]
  • unsigned char  [0,2^8-1]

一对单引号 字符型常量

一对双引号 字符串

注意字符型常量考题:'ll'里面可以有两个只会warning,没有error,最终显示的是这几个里面的最后一个

不可见字符,转义字符:+其他

常见转义字符以及作用

详细解释如下几个内容

\t 占八个字符,这八个字符横向占八个,在他前面

\b 相当于光标向前移动一个

\r 回车是回到光标的第一个

\ 转义字符,\ \表示一个反斜杠字符

\ 123 这个123代表的是八进制数不是十进制数,所以在计算的时候需要进行进制转换。

注意 :整型数据以及字符数据的区别如下

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值