-
静态变量、全局变量、常量存放在数据段 局部变量存放在栈 (补充学习栈中都存储什么东西)查看全部
-
在64位linux操作系统中,栈的地址空间分配顺序为:先分配高地址,再分配低地址。查看全部
-
64位的操作系统,指针变量占8个字节(64bit)查看全部
-
gcc在编译的时候。对代码在内存中的存储位置会有优化,比如相同类型的变量会存储在连续的地址里,在本例中即为a,b,s三个int的变量存储在连续的地址空间里,而与a,b紧紧相连的*pa存放在了s变量之后。查看全部
-
64位计算机内存中,抛开系统内核占用的0x7FFFFFFFFFFFFFFF--0xFFFFFFFFFFFFFFFF不说。 用户可以控制的从低到高的内存段分别为:代码段、数据段、堆、栈 另外,堆和栈之间有很大的一块可自由分配的内存区域查看全部
-
前提: Int a = 5; int *p=&a; 普通变量a的地址是:0x7fffffffddfc 指针变量p的地址是:0x7fffffffde08 变量本质是内存, 如:p和a 内存可以理解为是有内存地址和内存中保存的值组成 地址是16进制的整型表示的。 指针本质就是地址 ,如:*p ,即指针*p就是一个 地址 指针变量本质也是变量,如:p 指针变量的内存中保存的值是地址,如:0x7fffffffddfc &p是指针变量p自己内存的地址(注意区别:变量p中内存中值,就是普通变量a的内存地址) int *p=&a;// 指针变量的本质是内存,只是该种变量存放的不是普通的数据,而是地址。 指针变量p中保存的就是a的地址(即指针*p就是一个 地址(相当于空间的门牌号))。 输出p,结果是:0x7fffffffddfc 输出*p,结果是:5 int *p=&a;把a这个变量所在的内存地址赋值给了p这个指针变量,p也是一个变量,pa这个变量的内存是地址是0x7fffffffde08,这个地址保存的数据就是pa里面的东西0x7fffffffddfc,这个0x7fffffffddfc是a变量内存的地址。 *pa可以理解为:找到指针变量pa中保存的的地址中的值,注意要与“pa变量本身的地址区分开来” 普通变量放数据,指针变量放数据的地址 ,其实地址也是数据。查看全部
-
指针本质就是地址查看全部
-
&a取a的地址 此时a打印出来是地址 *a则是a地址所对应得值查看全部
-
main查看全部
-
&取地址符查看全部
-
pointer查看全部
-
一个64bit操作系统的内存地址占8个byte。查看全部
-
栈内存记录程序运行信息。查看全部
-
指针变量保存地址型 int变量保存整型查看全部
-
一根地址总线只能表示2种状态,要么0,要么1; 两根地址总线可以表示4种状态,00,11,10,01。 ...... 同理32根地址总线也就是32bit的操作系统可以表示2的32次方种状态。也就是2的32次方个地址。 也就是2的32次方个字节。 软件系统是不通bit的,2的32次方算出来的单位是4294967296个存储地址,而操作系统的能识别的最小单位是byte,所以我们设计操作系统的,给4294967296个存储地址,每个地址分1个byte,所以总共操作系统有4294967296byte,就是4GB。查看全部
举报
0/150
提交
取消