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

Linux C语言指针与内存

DavidChin
难度初级
时长 2小时 5分
  • GDB 调试工具 命令行 gdb -help // 查看安装及及用法 gcc -g main.c -o main.out // -g 函数编译时加入gdb调试 gdb ./main.out // 运行gdb调试代码 l (list简写) // 显示执行代码 只显示部分 可以输入l或直接回车以继续显示 start // 执行代码(单行执行)默认从主函数main开始 p a(a为变量) // 打印变量a的值 n // 继续执行下一行 s // 进入执行函数中(主函数中调用的函数) bt // 查看函数堆栈 f 1 // 切换到堆栈1(执行函数1)中 q // 退出调试
    查看全部
    0 采集 收起 来源:gdb工具的使用

    2016-11-07

  • 静态变量 全局变量 常量 还要回头看
    查看全部
  • 中括号,内存偏移,指针变量,数组指针常量
    查看全部
    0 采集 收起 来源:指针运算

    2016-10-27

  • 内存地址加1加的不是1,而是当前内存地址指向的数据类型的大小,比如整型,则内存地址加4个字节,即加4
    查看全部
    0 采集 收起 来源:指针运算

    2016-10-27

  • 内存操作时,某数据类型所占的空间大小的重要性
    查看全部
    0 采集 收起 来源:指针运算

    2016-10-27

  • p=&a后,获取了a的地址,p++时就是对一个十六进制的地址进行自加运算。
    查看全部
  • 指针变量char *str2 = "hello",用scanf 向str2中输入字符串出错,其实也可以这么理解,指针str2只是指向一个地址,从这个地址开始写入"hello",没有指定内存长度,没有空间去容纳字符串。内存溢出!这个与char str[] = "hello"不同,str已经有了6个字节的内存空间,
    查看全部
  • 数组名称本身是一种指针常量,不可修改 int array[2]; int *p=array; array为常量指针,不可改变;p为变量指针,可以改变; 所以,array能做的事情,p也能做到,但反之则不行;
    查看全部
    0 采集 收起 来源:指针运算

    2016-10-26

  • p pa指找到数据的内存地址(a的地址); p *pa指找到pa中的数据; p &pa指找到pa本身的地址。
    查看全部
  • 栈、先声明的地址大,后声明的地址小,与代码段数据段相反
    查看全部
  • cpu内存申请优化 指针类型的申请在基本数据类型申请之后。 指针 32位时 占用4个字节 指针 64位时 占用8个字节 CPU在编译的时候对栈内变量的存储地址进行优化,他会将类型相同的变量在连续地址中储存。
    查看全部
  • C语言中一个整型占32位,一个字节占8位,因此一个整型数字占4个字节
    查看全部
  • int *pa=&a指将a的地址传给pa。因此p pa看到的是a的地址(&a)。 而p &pa才能看到pa本身的地址。
    查看全部
  • CPU用地址总线寻址,有多少地址总线,就有多少种状态,就能寻找和使用多大的内存 32bit CPU: 2^32 bit== 4GB 64bit CPU: 2^64 bit 内存分配 系统内核(48位以上) ------------------------------------------- 栈(暂时存储首先执行的程序状态) ------------------------------------------ 自由可分配内存(可动态分配内存) ----------------------------------------- 堆 ---------------------------------------- 数据段(声明一些全局变量或者声明一些常量) ---------------------------------------- 代码段(程序源代码编译后存放在此)
    查看全部
    3 采集 收起 来源:内存管理

    2016-10-25

  • 1.编译命令:gcc -g main.c -o main.out; 2.调试命令:gdb ./main.out; 3.调试器: (gdb)list:列出源代码,可以输入l或回车以继续显示; (gdb)break line-number:在指定行数打断点; (gdb)start:开启单步调试; (gdb)p a:打印a变量在内存中的情况; (gdb)n:执行到下一句; (gdb)bt:查看函数堆栈; (gdb)s:进入函数内部; (gdb)f 1:切换到编号为1的函数中; (gdb)q:退出调试;
    查看全部
    3 采集 收起 来源:gdb工具的使用

    2016-10-25

举报

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

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