C语言中数据类型的全部知识点

C语言中数据类型的全部知识点

C语言语法基础:函数注释等等

黑马程序员:C语言字符串格式运算符表达式和语句(附源码)

黑马程序员:C语言条件分支语句和循环语句知识点大全

C语言数组的使用,结构类型等知识点

C语言函数当中的形参和实参

C语言函数的递归所有知识点大全

二、C语言中的数据类型

2.1 常量

常量是在程序当中不可变化的量,常量在定义的时候是要必须给一个初值的。

(1)#define :定义宏常量的

(2)const :定义一个const常量

2.2 字符串常量

“hello world”

对于#define的这类型常量,C语言当中的习惯是常量名称为大写,但是对于普通const常量以及变量的话,一般为小写结合大写的方式

2.3 二进制数、位、字节与字

我们一般都习惯的是十进制的数:10,12这类的;

一个位只能是代表0或者1两个状态,简称为bit,一个位是一个bit

一个字节为8个二进制被称为8位,简称BYTE,8个bit是一个字节

一个字是2个字节,简称WORD;两个字为双字,简称:DWORD;

2.4 八进制

八进制为以8为基数的数制系统,C语言里面呢0表示八进制,例如:0666;

2.5 十六进制

十六进制值16为基数的数制系统,那么C语言当中用0x表示十六进制。下面给大家看一个表格:

注意:

十进制转化成八进制的话,用十进制数作为被除数,八进制的数值为除数,取商数和余数,一直到商数为0的时候,将余数倒过来就是转化最后的结果;

十进制转化成十六进制的时候,用十进制作为被除数,十六进制作为除数,取商数和余数,直到商数为0 的时候,将余数倒过来就是转化后的结果;

2.6 原码

将最高位数做符号位,(0代表正,1代表负)其他的各位代表数值本身的绝对值


2.7 反码

一个数如果值为正,那么反码和原码相同,那么如果数值为负,符号位为1,其他各个位与原码相反


2.8 补码

原码和反码都不利于计算的运算,比如说原码表示的7和-7相加的话,这里还需要判断符号位。

正数:原码反码补码都相同的;负数:最高位是1,其余的各位原码取反,最后对整个数+1;


补码符号位不懂,其他位反求。最后整个书+1,得到原码


2.9 sizeof关键字

sizeof是C语言当中的关键字,功能是求指定数据类型在内存中的大小,单位还有字节

sizeof与size_t类型,后面会给大家罗列一个C语言关键字的表格,大家可以参考背下来

2.10 int类型

(1)int常量,变量:int就是32位的一个二进制整数,在内存里面占据了4个字节的空间

(2)printf输出int值:%d表示输出一个有符号的10进制整数,%u代表输出一个无符号的十进制整数

(3)printf输出八进制和十六进制

%x代表输出15进制,%X:用大写字母方式输出16进制数

%o代表输出八进制

(4)short,long,long long,unsigned int

  • short的意思是短整数,在32位的系统下都是2个字节,是16bit
  • long意思是长整数,在32位的系统下都是4个字节,那么在64位的系统下,windows还是4个字节,unix下是8个字节;
  • Int不管是32位系统下还是64位的系统下,long都是4个字节,在64位系统下面windows还是4个字节;
  • Long long是64位的,也就是所8个字节大小的整数,对于32位操作系统,CPU寄存器是32位,所以计算long long类型的数据,效率是很低的
  • 9l,9L,9ll,9LL,9u,9ull,9ULL

(5)整数溢出

计算一个整数的时候,超过整数能够容纳的最大单位之后,整数就会溢出,溢出的结果是高位舍弃

当一个小的整数赋值给大的整数,符号位是不会丢失的,从而继承

(6)大端对齐和小端对齐

对于arm和intel这种x86构架的复杂指令CPU,整数在内存中是倒着存放的,低地址放在低位,高地址放在高位,小端对齐

但是对于unix服务器的话CPU更多的是采用大端对齐的方式存放整数



2.11 char类型

(1)char常量与变量

char c是定义一个char变量

‘a’,char的常量

Char的本质的话就是一个整数,是一个只有1字节大小的整数

(2)printf输出char

%c意思是输出一个字符不是一个整数

(3)不可打印char转义符

\a,报警

\b 退格

\n 换行

\r 回车

\t 进制表

\\斜杠

\’单引号

\”双引号

\?问号

(4)char和unsigned char

char取值范围是-128到127

unsigned char 为0-255

2.12 浮点 float,double,long double类型

(1)浮点的常量和变量

Float在32位系统下是4个字节,double在位系统下是8个字节

小树的效率也是很低的,除非明确的要计算一个小数

(2)printf输出浮点数

%f,%Lf

%f是输出一个double

%lf输出一个long double

2.13 类型限定

(1)const:代表着一个不能改变的值的常量

(2)volatile:表示变量是一个可能被COU指令之外的地方改变的,编译器就不会针对这个变量去优化目标代码。


(3)register:变量在CPU寄存器里面,不是在内存里面的。但是regist是建议型指令,而不是命令型的指令


以上就是C语言,第二部分数据类型的所有知识点,下一篇文章会说到字符串格式化的输出和输入,大家在找到配套的视频的时候,可以以本篇文章作为参考笔记。

发布于 2018-10-19 16:07

文章被以下专栏收录