为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
Linux C语言指针与内存_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

Linux C语言指针与内存

DavidChin
难度初级
时长 2小时 5分
  • 静态变量、全局变量、常量存放在数据段 局部变量存放在栈 (补充学习栈中都存储什么东西)
    查看全部
  • 在64位linux操作系统中,栈的地址空间分配顺序为:先分配高地址,再分配低地址。
    查看全部
  • 64位的操作系统,指针变量占8个字节(64bit)
    查看全部
  • gcc在编译的时候。对代码在内存中的存储位置会有优化,比如相同类型的变量会存储在连续的地址里,在本例中即为a,b,s三个int的变量存储在连续的地址空间里,而与a,b紧紧相连的*pa存放在了s变量之后。
    查看全部
  • 64位计算机内存中,抛开系统内核占用的0x7FFFFFFFFFFFFFFF--0xFFFFFFFFFFFFFFFF不说。 用户可以控制的从低到高的内存段分别为:代码段、数据段、堆、栈 另外,堆和栈之间有很大的一块可自由分配的内存区域
    查看全部
    0 采集 收起 来源:内存管理

    2017-11-18

  • 前提: 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 采集 收起 来源:内存管理

    2017-10-28

举报

0/150
提交
取消
课程须知
本课程是C语言中级课程,为了更好的学习效果: 1、需要有一定的C语言基础,如果没有基础的同学可以看《C语言入门》这门课。 2、本课程是在Linux环境下讲解,需要熟悉一些Linux命令。如果不了解的话可以在《Linux C语言编程基本原理与实践》这门课程中补充
老师告诉你能学到什么?
1、C语言中的指针是怎么回事 2、Linux下gdb调试工具是怎样使用的 3、指针与内存有着怎样的关系 4、数组与字符串之间的联系
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!