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

Linux C语言指针与内存

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

已采纳回答 / 野狐逃禅
不对,str2中存储的是地址没错,但str2其本身是指针,所以输出str2是输出指针中存放的地址所指向的值,指针本身的特性。视频中一直展示的*str2才能访问地址所存值、str2访问的是地址是在调试环境下的情况,并不是程序本身运行效果,不要被迷惑了

最新回答 / 游园惊梦_张
str2只是个常量,取地址打印(&str2)才是打印出地址。整形数跟字符类型的&都是一样的

最新回答 / 慕粉004404296
这里的字节指的是地址编号的字节表示方式 而地址编号最少用8位16进制来表示的 不能单用位来表示比如在32位操作系统中0x7fff ffff 就是一个地址编号 他不是单用位来表示 而是用字节来表示比如在64位操作系统中0x7fff ffff ffff ffff 这也是一个地址编号顺便一提16的16次方等于2的64次方同理16的8次方等于2的32次方

最赞回答 / Resona丶紫珀
因为对于%s来说,他是打印一个字符串,那么他总要知道什么时候打印结束吧,所以就以/0为准,看见/0就不打印了但是对于%c来说,他只负责一个一个把字符打印出来,才不关心什么时候结束呢,让我打印我就打印,所以如你所见,他就可以打印出/0后面的东西

最新回答 / 小帅哥gaoyi
那不能用gdb调试了,只是生成.exe

已采纳回答 / qq_我的执著_0
答:int 定义一个整型数,默认值不是0,定义的这个整型变量相当于只是开辟了一块内存空间,其里的值是操作系统自己分配的,我们不知道,相当于乱码,所以输出的值才是65280,它是个不确定的数

已采纳回答 / 慕粉0954121572
指针偏移3次,第一次从a移动到i,第二次从i移动到b,第三次从b移动到array[0]

已采纳回答 / 0011nj
前一个是取ab地址上的值第二次是取ab所在的地址

已采纳回答 / undersunshine
编译的时候要加入-g选项,例如你要编译hello.c文件,就必须用gcc -g hello.c,这样的话输出的文件a.out才能用gdb进行debug。你可以试下,加入-g这个选项。

最新回答 / 不看6324不混吃等死
64位的意思 能有 2的64次方种二进制排列方式。2G内存表示一次能储存2的31次方个二进制排列方式

已采纳回答 / 阿姆斯特蛋
老师是在声明语句里直接定义了p指针的值是a的地址,如果分开写,那么就是int *p; p = &a;如果一起写,那就是int *p = &a;

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

微信扫码,参与3人拼团

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

友情提示:

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消