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

Linux C语言指针与内存

DavidChin
难度初级
时长 2小时 5分
  • * 取内容符

    查看全部
  • 函数的参数是形参,a、b为参数名,将a,b传递进函数的时候,传入的是两个数值,在函数里a、b相当于局部变量,无论怎么改变,有效范围只在该函数里面,对于main里面的a和b是没有影响的。即函数在传递数值的时候是默认把变量里的值传进去,故传入的值是实参,而a、b作为一个代号只代表一个变量的名称,而且该变量在函数里面就相当于一个局部变量,无法影响主函数。

    查看全部
    0 采集 收起 来源:gdb工具的使用

    2021-01-11

  • char类型的指针变量里面的值在代码段 

    用scanf输入数组类型的值时 可以不用加& 因为数组名称本身就是地址 

    指针类型的字符串不能输入 char *p="hello world" 中的hello world 不不允许被修改的,因为它储存于代码段,而非堆或栈中

    只有堆和栈里面可以进行修改数据,代码段不允许修改数据

    字符串遇到\0就结束不会打印后面

    查看全部
  • 指针类型的加减做的是地址的偏移(表示把内存地址进行移动)

    p[3]表示 把p往下偏移移动三格(=> p+=3)

    数组的本质也是一种指针;任何需要用数组操作的地方都可以用指针来操作;因为指针和数组本质上都是内存地址。

    但反过来则不一定,所有指针能操作的数组不一定能够操作。数组名不可以被操作。即“array+=2” 会报错。

    p是一个指针变量,是一个可以指向不同地址的量;而array本质上是一种指针常量。

    指针常量能操作的一般指针变量也可操作,但指针变量可以把指针指向别的地方而指针常量则不可以,即array一旦声明指向了某个地址则永远指向这个地址而不能被改变。

    数组和指针可以有一定的通用性又有一定的差别。

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

    2021-01-03

  • 任何一个指针,变量名称本身:指向变量所在的地址;

    在变量名称前加*:通过该地址去找地址里的内容;

    查看全部
  • 最下面的内存最先分配

    最先分配的栈地址反而更大

    栈的特点:先进后出

    静态变量不在栈里头,相同变量名称的静态变量分别在两个函数里便为两个不同变量,属于每个函数特有的;

    全局变量为所有函数公用的。其地址不变。

    一个函数被多次调用时,静态变量指向的还是数据段一个固定的地址;即不同函数的count是不同的count,但同一个函数不管调用多少次count,它指向的都是数据段的某个地址。

    查看全部
  • 每调用一个函数都会分配一个栈内存

    先声明的函数地址小,后声明的函数地址大

    而在栈中是相反的

    查看全部
  • 在栈中 一个函数可以被多次调用

    每次调用函数都是一个独立的栈


    查看全部
  • 栈存储的为函数当前的运行状态

    查看全部

举报

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

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