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

Linux C语言指针与内存

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

最新回答 / qq_慕仰6575534
两个函数中的变量有不同的作用域,所以int中的ab,和子函数中的ab就不一样了

已采纳回答 / 慕标4513284
没有关系,只是因为指向的地址不同. 后面能改是因为你直接指向了a变量的地址.  如果不通过地址进行修改的话.只是局部变量. 存在于另一个空间

最新回答 / 慕容3376081
对啊,视频说的就是b是dde0,他说的是b的下一个地址应该是de04

已采纳回答 / 慕瓜2511366
每个字符串在内存中都占用一段连续的存储空间。并有唯一确定的首地址。因此可以将字符串的首地址赋值给字符指针。则可以让字符指针指向一个字符串。对于字符串常量而言,字符串常量本身就代表他常量存储区的首地址。运行的时候,就加载了。是无法更改的,在我们的内存中代码段中的。栈内存和堆内存才能更改。

已采纳回答 / 慕婉清2776440
看20s时作者的声明,他声明的a是地址,*a是其中包含的内容

最新回答 / _及時行樂
int*可以理解为一种数据类型,和int一样,int*是申明一个地址变量a,a用来接收传入的地址

最新回答 / tansss
那跟硬件有关,跟系统无关

最新回答 / 慕函数8284414
我自己理解了,,P[4]代表的是确定的变量,这里表示array[1],指针并没有移动

最新回答 / 慕仔8245428
伴随着i的自增,p也会自增(p++),不是单纯的偏移,而是每次自增偏移一位后又赋给p,p的值本身发生了改变,往后移了一个地址(p本身就是执行int型的指针,所以每次偏移都是跨越一个int的长度,即四个字节,指向内存中存储的下一个变量)。这时在去*p,就是访问的内存中a之后的存储的下一个int变量了。

最新回答 / 此号已注销_kpsvyL
-- 我看错了--------哦哦我看错了现在正确了----但是为什么输入里面不能写change?-----还有为什么输入里面printf("numa=%d,numb=%d",a,b);  a和b前面不用加&了?

最新回答 / qq_慕瓜4050626
不应该加*,函数名就是首地址,*是对于指针取值的运算,而你serch要的参数是地址,应该用score下载视频          

最赞回答 / 开开开
懂了。。16进制的这些只是内存地址的编号,而内存条最小存储单元的大小为1个字节,也就是说0xddfc这个地址编号对应的内存中能存储1个字节的数据.内存条最小存储单元为1个字节,因此32位PC的寻址空间包含2^32个地址,每个地址对应1个字节的数据空间,那么32位PC的最大内存为2^32字节=4G

+ 我来回答 回答最高可+2积分

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

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消