C语言数据存储
泡泡牛奶 人气:0数据类型的介绍
在前面的章节中我们基本认识到了各种数据类型,这里我们就稍微回忆以下吧
类型的意义:
- 决定了访问内存空间的大小
- 决定了看待内存空间的视角(例如:整型和字符数据类型)
类型的基本归类
整型家族:
char
unsigned char
signed char
short
unsigned short [int]
signed short [int]
int
unsigned int
signed int
long
unsigned long [int]
signed long [int]
浮点型家族:
float
double
构造类型:
> 数组类型
> 结构体类型 struct
> 枚举类型 enum
> 联合类型 union
指针类型:
int *pi; char *pc; float *pf; void *pv;(泛型指针)
空类型:
void 表示空类型 (无类型)
通常用于 函数的返回类型、函数的参数、指针类型
//作为函数的返回类型 void f1()//不接受任何返回值 { ; } //作为函数的参数 int f2(void)//参数为void时,传入参数会报错 { ; } //作为指针类型 void* f3(void* pv)//参数为 void* 时,可接收任意类型的参数 { ; }
整型在内存中的存储
计算机中的整数有三种2进制表示方法,即源码、反码、补码。
三种表示方法均有符号位和数值位
符号位: " 0 " 表示 正," 1 "表示 负
数值位:
正数:
原码、反码、补码相同
负数:
原码:直接将数值按二进制翻译
反码:原码符号位不变,其它位按位取反
补码:反码+1
我们可以在内存中的存储看到:
这里大家可能有个疑问,为什么j
和i
在内存中会是这样?为什么i
和 j
内部二进制会倒过来存储呢??编译器坏了
加载全部内容