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

Linux C语言指针与内存

DavidChin
难度初级
时长 2小时 5分
  • 同一类数据 一起存放 int 指针类型 等
    查看全部
  • 数据段 -- 全局变量 常量
    查看全部
  • int (*pquadrate)(int a) = &quadrate;是啥意思? 这是将pquadrate声明为函数指针,它指向的是有一个int型参数,返回值为int的函数。这语句同时将pquadrate初始化为quadrate的地址(显然quadrate应该是个函数名)。 一步一步讲这个声明: 这语句声明的是pquadrate变量,前面有个*,而且是用小括号和变量名括起来的(*pquadrate),表明这个变量名优先和*结合。声明变量时前面有*就代表这个变量是指针,所以pquadrate是个指针。那它指向什么呢? 接着看,后面有小括号,前面有类型,表明是个函数。参数就是int a,返回值是int型。所以pquadrate是指向这样的函数的指针。
    查看全部
  • 命令:set nu 设置行号
    查看全部
  • pa是一个指针变量,加&就是表示访问pa地址所指向的那个地址。不加&就是pa本身的地址 代码段,内存是由低地址向高地址转移,先申明函数地址小,后申明地址大; 栈相反
    查看全部
  • int *pa=&a;把a这个变量所在的内存地址赋给了pa这个变量,pa也是一个变量,pa这个变量所指向的内存是地址是0x7fffffffde08,这个地址保存的数据就是pa里面的东西0x7fffffffddfc
    查看全部
  • 数据段
    查看全部
  • 地址分配:代码,数据段是从下往上分配(先低地址,后高地址),栈是从上往下分配(先高地址,后低地址) 函数中静态变量,局部变量区别: 局部变量在栈(相对数据段而言的高地址)中,而静态变量在数据段(低地址)中. 所以在多次调用函数时,静态变量不会被重新,初始化. 或者这么说,静态变量的生存周期和数据段相同,局部变量生存时间受调用函数时,所属函数进栈出栈的影响而会重新初始化. 全局变量和静态变量都在数据段中,但静态变量是某个函数特有的.
    查看全部
  • int a:0x7fffffffddfc int b: 0x7fffffffde00 32位系统存放2进制数可以存放32位,共8个字节/16个16进制数 系统内存共2的32次方,4G空间 注:32位不是全部都用来表示地址的,可以前面7个字节表示地址,后面1个字节来存储数据;int 型32位数/4个字节,需4个地址空间来存储数据;故从 0x7fffffffddfc.0x7fffffffdefd.0x7fffffffdefe.0x7fffffffdeff 共4个内存空间来存储 int 数据。 总感觉有误! 哦,该系统为64位!....... 哦,我的想法真的是错的太离谱了!......... 64位系统是由计算机地址总线来控制的,有64位地址总线,每根可以表示0/1两种信号,故可以控制2的64次方的内存地址空间;每一个地址所对应的内存条空间可以存储1个字节的内容;故 int 类型数据需4个地址来存储4个字节的内容,连起来共组成32位的 int 数据;故 指针 类型数据需8个地址来存储8个字节的内容,连起来共组成64位的 指针 数据,等于64位的地址编码;再回溯之前的 0x7fffffffddfc.0x7fffffffde00 地址,可想到有几个被操作系统所省略一笔带过的地址字节数,如这个被省略了两个字节,全由0x来代替,赋予了其特殊的含义。
    查看全部
  • main函数的参数: int main(int argv[],char* argc[]); 大用: ./main.out ls -a skjffl lssjdk ljsf main函数的返回值: return 0; 大用:./main.out && ls echo $? Unix操作系统认为"一切皆文件" Linux操作系统认为“一切皆文本流 text stream” stdin standard input 标准输入流 stdout standard output 标准输出流 stderr standard error 标准错误流 大用: fprintf(stdout,""); fscanf(stdin,"",); fprintf(stderr,""); redirect 重定向 stdin 0 < stdout 1 >或1>或1>>或>> stderr 2 2>或2>> 大用: ls >>wenjian.txt pipe 管道 大用:ls | grep ab ps -e| grep ssh 改变数据流的方向
    查看全部
  • p print 打印 bt 查看函数堆栈 n nextline 下一行 f 1 跳到1这个栈的函数里面 l list 列出源代码 q quit 退出调试 s stepin 干涉/介入 break 行号 设置断点 gcc -g参数 编译成可执行文件 gdb ./main.out gdb调试工具的使用
    查看全部
    0 采集 收起 来源:gdb工具的使用

    2017-05-28

  • X/1d 0x7fffffffde14 从某个地址显示1个整数,d表示整数,1表示显示的数量
    查看全部
  • 内存规划
    查看全部
    0 采集 收起 来源:内存管理

    2017-05-14

  • 内存在程序运行过程中的调用细节!
    查看全部
    0 采集 收起 来源:内存管理

    2017-05-09

  • 经典章节!!!内存原理。。。
    查看全部
    0 采集 收起 来源:内存管理

    2017-05-09

举报

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

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