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

Linux C语言指针与内存

DavidChin
难度初级
时长 2小时 5分
  • 指针的本质就是地址
    查看全部
  • 地址分配:代码,数据段是从下往上分配(先低地址,后高地址),栈是从上往下分配(先高地址,后低地址) 函数中静态变量,局部变量区别: 局部变量在栈(相对数据段而言的高地址)中,而静态变量在数据段(低地址)中. 所以在多次调用函数时,静态变量不会被重新,初始化. 或者这么说,静态变量的生存周期和数据段相同,局部变量生存时间受调用函数时,所属函数进栈出栈的影响而会重新初始化. 全局变量和静态变量都在数据段中,但静态变量是某个函数特有的.
    查看全部
  • 32位操作系统指针类型占4个字节,64位操作系统占8个字节(即各自操作系统地址所占的字节)
    查看全部
  • 机器语言可以为数据分配地址,汇编语言也有一定的方法,C语言标准语法中是不行的,因为有可能会错误的操作到汇编程序的内存地址。(但还是有办法做到的,只是标准而已)
    查看全部
  • 规律。
    查看全部
  • 此处a,b,属于及时释放的内存,并不会对相应的内存地址进行改变
    查看全部
  • 64位系统下,指针占8个字节,32位 4个字节。 栈、先声明的地址大,后声明的地址小,与代码段数据段相反。 编译器优化代码,把声明时不在一起的同一类型变量,放到一起(某种程度上修改了源码) 如 声明 int a ; float b ; int c; 编译后变量a的地址和c的地址是连在一起的. cpu内存申请优化 指针类型的申请在基本数据类型申请之后。 指针 32位时 占用4个字节 指针 64位时 占用8个字节 CPU在编译的时候对栈内变量的存储地址进行优化,他会将类型相同的变量在连续地址中储存。
    查看全部
  • 变量保存的地址 栈内存 内存的分配
    查看全部
  • 指针类型是一种类型,和整数浮点数一样
    查看全部
  • 变量的本质,变量只是一个代号,好比详细地址某市某街道某门牌号(变量)跟经纬度(内存地址)的关系,所以变量的本质就是内存地址,我的理解就是变量是内存地址的别名(代号)
    查看全部
  • 变量名只是代号 变量的本质是内存
    查看全部
  • gdp 工具可以打断点 编译的时候需要 -g 参数 gdb 运行编译文件(源文件需要存在) l 表示查看当前代码 回车表示执行上一个命令 break:打一个断点 start 默认的断点调试
    查看全部
    1 采集 收起 来源:gdb工具的使用

    2016-11-23

  • 工具gdb内的指令格式: x/3d 0×7ffffffde14 x/:表示连续输出地址内的值 3:表示输出3个地址内的值 d:表示连续输出的值用十进制表示 0×7fffffffde14:表示三个连续地址里的第一个地址
    查看全部
  • 64位系统下,指针占8个字节,32位 4个字节。 栈、先声明的地址大,后声明的地址小,与代码段数据段相反。 编译器优化代码,把声明时不在一起的同一类型变量,放到一起(某种程度上修改了源码) 如 声明 int a ; float b ; int c; 编译后变量a的地址和c的地址是连在一起的. 64位寻址下,指针占用8字节空间.
    查看全部
  • 变量名只是代号 变量的本质是内存 在标准的C语言中,不允许直接对内存地址进行操作,只能是对操作系统已经分配给的内存空间进行操作。(防止用户自己操作内存地址时侵吞系统内存或者其他程序的内存) p 指针指向的变量地址 *p 指针指向的变量值 &p 指针自己所在的地址 既然一个指针保存的是变量的地址,对32位CPU,地址有4个字节,就需要4个内存单元来存储,所以每次++p在内存里都是跳4格。 函数调用信息保存在栈(stack)中。 int *pa=&a指将a的地址传给pa。因此p pa看到的是a的地址(&a)。 而p &pa才能看到pa本身的地址。
    查看全部

举报

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

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