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

Linux C语言指针与内存

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

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

最赞回答 / qq_伽马_0
因为指针是直接访问内存的,就好像你找东西直接有东西的地址一下就找到了,数组需要一个地址一个去找,所以指针操作效率高

最赞回答 / clownz
&pa显示的是指针变量pa的地址,pa显示的是它所存储的地址,也就是它指向的变量的地址

最赞回答 / 燃烧我的小宇宙
内存的位宽是1个字节,意思是每次访问内存一个地址单元的时候,可以读/写1个字节;2^32个地址就是2^32个字节

最新回答 / 某年某月某日某些遇见3168616
主函数中加入printf(“%d,%d”,x,y);会报错;你定义的x,y的作用域于只在change函数里面可以用;如果你把这句话加入到change内部就可以用了;

最新回答 / LinChuCy
p str 取出的是str 地址里存放的数据 p *str 取出的 才是首地址

最赞回答 / 小雾3378873
一段程序执行太快了,若想知道该程序在执行过程的每一步执行后对结果的影响或者了解该语句的作用,则需要一种调试工具,让他动作变慢,并且随着你的控制让他一步一步的执行,而且其间你可以用一些命令查看内存,验证结果,这就是gdb调试工具的作用。以下是我的笔记:GDB可以对程序进行断点调试,单步调试,如果用gdb调试,需要对程序重新编译,格式为:gcc –g main.c –o main.out这样生成的main.out才能用gdb调试。需要注意的是,在调试的时候不能删除原代码文件,即main.c ,如果将main....

最新回答 / 实时编程
0x1 代表一个地址  不管是32位 还是64位系统 都是 使用 一个 32位 2进制 或者64位二进制 来 寻找这个地址而地址 里面 保存的 数据 是一个 8位 2进制数这个 8位2进制 恰巧是一个字节    所以 从0x1 到0x5  增加了 4个字节  不管是 32位 还是64位 地址只是表达 具体位置    里面的 内容 确实个8位的 2进制数 而已   

最新回答 / 慕后端9788028
我按楼主程序运行,在Linux下同样出现相同的情况,执行到循环时,gdb也不能打出值来。换了c-free ,第三个输出就出现莫名的值,我认为这是编译器的问题。

最新回答 / 用老名
断点调试:选定某一行,然后选定调试工具栏最右边那个手掌符号(F9),然后选定它旁边那个带箭头的符号(F5).

最新回答 / 黑雪墨白
...你看错了之前的scanf输出到str,这时候才填充到str3输出八个字符时输出到str3,再往后面就是空的了

最赞回答 / 慕后端9788028
p[4]=101代表从初始位置(a的地址就始)以四个字节为一步,向前走4步,到达某个位置,然后对这个位置进行初始化赋值,即把101赋给这个地址所代表的内存空间。p[4],*p=101,p[4]代表从初始位置(a的地址就始)以四个字节为一步,向前走4步,到达某个位置。*p=101,代表此时指针指向的地址(即走了四步后所在位置)并对这个地址所在的内存空间进行初始化,赋值101。p+=3于p=p+3等同,加的是步数,原理跟p[3]一样
课程须知
本课程是C语言中级课程,为了更好的学习效果: 1、需要有一定的C语言基础,如果没有基础的同学可以看《C语言入门》这门课。 2、本课程是在Linux环境下讲解,需要熟悉一些Linux命令。如果不了解的话可以在《Linux C语言编程基本原理与实践》这门课程中补充
老师告诉你能学到什么?
1、C语言中的指针是怎么回事 2、Linux下gdb调试工具是怎样使用的 3、指针与内存有着怎样的关系 4、数组与字符串之间的联系

微信扫码,参与3人拼团

微信客服

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

帮助反馈 APP下载

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

公众号

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

友情提示:

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消