一.字节序:
1.概念:CPU对内存中的数据以字节为单位进行存储的顺序。(因为内存有高低地址之分,数据的二进制有高低位之分)(起始地址是低地址)
2.分类:eg: int a=0x01020304
大端:高字节存放在低地址(低地址存高位) 01 02 03 04
小端:高字节存放在高地址(低地址存低位) 04 03 02 01
3.针对的数据类型:存储单元大于一个字节的数据类型
对于字符数组不受影响,eg: char arr[10];
PS:主句字节序主要取决于CPU架构:X86 小端,MIPS 大端
字节序主要是在网络通信中不同主机之间的通信,若字节序不同会造成数据二义
二.整形的存储:整数在内存中的存储采用的是补码,可以节省一些运算单元
在内存中数据都是以二进制形式进行存储的
原码:数据直接转换成二进制
补码:符号位不变,其他位按位取反
反码:补码加1
PS:正数的原反补码都相同
eg: -10 (用char型表示)
原1000 1010
补1111 0101
反1111 0110
三.指针:本质是地址,因为它指向了一块内存空间。
指针是一种类型,通常定义指针变量实际上是定义指针类型的变量,即有一块自己的空间,保存了另一块空间的地址。
PS:指针+1,是向后偏移一个它所指向的元素;
指针-指针得到的是两个指针之间间隔的元素个数;
指针解引用所得到的是它所致类型的字节个数,如整形指针解引用操作可以访问4个字节;
指针可以比较大小;
二级指针是指向一级指针的指针,是用来保存一级指针的地址;
指针的大小在32位下是4个字节,64位下是8个字节
四.数据类型
有char, short, int, long, float, double 以及相应的无符号类型
指针类型:char*、....
数据类型的作用:确定能访问的空间大小;看待空间中数据的角度(对于指定空间中数据的解释)
(char, short, int, long存储的都是整数)
(char虽然是字符类型但存储的是ascii值)
void是空类型,修饰函数返回值类型以及修饰函数参数。