为了账号安全,请及时绑定邮箱和手机立即绑定

Linux C语言指针与内存

难度初级
时长 2小时 5分
学习人数
综合评分9.60
263人评价 查看评价
9.9 内容实用
9.5 简洁易懂
9.4 逻辑清晰
    • 1.int array[5];

      arrray += 2;        //错误, array是常量指针(int const *array),不能被修改.

    查看全部
    0 采集 收起 来源:指针运算

    2022-02-10

    • C程序中的各个变量的地址与编译后的二进制程序中变量的地址并没有一一按照顺序存储,原因是编译器对程序进行了一定的优化,调整了变量在栈中的存储顺序。

    查看全部
  • 栈的特点:先进后出

    查看全部
  • 32bit:4个字节

    64bit:8个字节

    查看全部
  • 表示位置

    查看全部
    1. 变量只是一个代号,它的本质是内存。

    2. 指针保存的是内存地址。

    查看全部
    1. 地址总线有多少位,寻址空间就有多少位。地址总线可以存在多种状态:32根地址总线就有2的32次方个状态。

    2. 比如:32位指的是给内存编号只能编到32个二进制位。

    查看全部
    0 采集 收起 来源:内存管理

    2021-11-18

  • 十六进制:

    二进制:满二进一

    查看全部
  • 堆内存:是区别于栈区、全局数据区和代码区的另一个内存区域。堆允许程序在运行时动态地申请某个大小的内存空间。

    栈内存:每一块保留一块堆内存地址,存取速度比堆快,仅次于寄存器,栈数据可以共享,但缺乏灵活性。

    内存地址

    指针变量的实质:是一个概念也是一个变量,整形指针、字符指针、浮点指针是指针的具体浮现,常量由编译器决定。

    指针不是地址,是地址加偏移量。

    查看全部
  •  int* a;这里的a就是代表指针变量(int*),而不是一个整型变量(int)所以a存放的是地址,*a才是地址中存放的值(这里的*与第一行的*不同,这个*是取地址的意思)

    查看全部
  • 用于调试的编译问件:gcc -g 文件名.c -o 文件名.out

    调试文件:gdb 文件名.out进入调试状态,

            列出当前项目软件源代码:l/list,若显示不完整,直接回车键即可继续显示              

            设置断点:break 行数              

            单步调试:start              

            查看变量的值: p/print 变量名              

            进行下一步:n

            进入某一步中查看,在进行到该步时,:s/step 

            查看函数堆栈:bt              

            查看函数堆栈是,查看某一堆栈:f 堆栈行

            回车:重复执行上个步骤

    查看全部
  • 指针,本质是一个地址
    代表指针的数据本身也有一个地址,但这个没用
    给指针赋值的时候,给的是被赋值量的地址

    查看全部
  • 一个指针是一个地址,32位是32/8=4字节,
    64位是64/8=8字节。
    查看全部
  • str[3]是字符串第四个字母l,将其改为\0就将字符串结束了。

    str在内存存放结束后就是str3开始存放。

    str只有6位空间,输入超过六位之后,编译器会将多余的输入从str的地址开始,一直向内存中输入。

    c语言的字符串数组,本质是字节数组,存放了很多字节。

    查看全部
  • str3[]是字符数组,所以str3可以直接作为地址,在scanf语句当中就不用&str3的表达方式了。

    "hello"这个字符串有5个字符,字符串结尾还有一个\0,所以一共有6个。

    x/6cb:表示向下打印6个字符,用比特为单位。

    用scanf输入str2,对其进行改动,不能完成值的更改,因为指针的内容在运行过后,会储存在代码段,无法被更改。

    查看全部

举报

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

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

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