1.bit (32位系统)
字节 = 8bit 半字 = 16bit 字 = 32bit
int = 4字节; short = 2 ; double = 8 ; float = 4 ; char = 1 ; long = 4 ; (指针变量为4字节,地址长度固定 )
2.
unsigned char : 0 ~ 255 ;
signed char : -128 ~ 127 ;正数原码与补码相同,负数的补码为绝对值的原码取反+1 ,负数的补码取反+1为原码,机器中为补码;
typedef 数据类型重命名(提高无符号与有符号代码的可移植性) : typedef int Int;
有无符号数进行比较运算时,有符号数变成无符号数;
3.
变量的三大特点:数据类型,作用域,存储类型;
内存分配4G的虚拟地址空间给进程:高地址的1G分给内核,其余分给用户;
用户又分为:(1)栈空间:保存局部变量、函数形参、自动变量(先进后出,系统管理)(2)堆空间:malloc、calloc、ralloc(先进先出,用户管理)
(3)(全局)数据区:【1】bss 未初始化全局变量【2】ordata 常量 【3】静态数据区 :初始化全局变量,static修饰变量。
全局变量与局部变量区别:(1)作用域:局部变量在所在函数执行完时释放,全局变量在程序结束之后释放。(2)存储:全局变量保存在全局数据区,局部变量保存在栈空间内。(3)初始化:全局变量未初始化时,默认初始化为0,局部变量为初始化默认初始化为随机值。(4)全局变量与局部变量重名时,局部变量起作用。