整理了一些离散的概念点
-
1.栈和代码段、数据段不一样,栈是越靠近栈顶,其内存地址越小,而代码段和数据段则是,越往后,其内存地址越大数据段放啥呢:全局变量,常量,函数里的静态变量。内存的规划,从高地址到低地址是:栈段,自由段,堆段,数据段,代码段。栈自堆数代
-
栈的特点:先进后出,
内存地址由大到小。
地址分配:代码,数据段是从下往上分配(先低地址,后高地址),栈是从上往下分配(先高地址,后低地址)
函数中静态变量,局部变量区别: 局部变量在栈(相对数据段而言的高地址)中,而静态变量在数据段(低地址)中. 所以在多次调用函数时,静态变量不会被重新,初始化. 或者这么说,静态变量的生存周期和数据段相同,局部变量
-
32位操作系统(32个地址总线,2的32次幂 2的30次方1024的3次方,就是1G)做多使用4G内存 64位操作系统(2的30次方 =G,2的40次方=T)0xffffffffffffffff - 0x0
-
指针 32位时 占用4个字节 指针 64位时 占用8个字节
-
&a:返回变量a的内存地址
*a:用来保存变量a的内存地址
&和*运算符恰好相反。&运算符接收一个数据,然后告诉你这个数据保存在哪里;*运算符接收一个地址,然后告诉你这个地址中保存的是什么数据。
&:表示获取变量的地址