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

Linux C语言指针与内存

难度初级
时长 2小时 5分
学习人数116493
综合评分9.60
263人评价 查看评价
9.9 内容实用
9.5 简洁易懂
9.4 逻辑清晰
说的非常透彻,非常厉害,谢谢老师
谢谢老师,很赞
老师 讲的真透彻
点牛,可以啊老师
(gdb) x/25cb 0x7fffffffde20
0x7fffffffde20: 97 'a' 97 'a' 97 'a' 97 'a' 97 'a' 97 'a' 97 'a' 97 'a'
0x7fffffffde28: 97 'a' 97 'a' 97 'a' 97 'a' 97 'a' 97 'a' 97 'a' 97 'a'
0x7fffffffde30: 97 'a' 97 'a' 97 'a' 97 'a' 97 'a' 97 'a' 97 'a' 97 'a'
0x7fffffffde38: 97 'a'
(gdb)
确实p[i]不是p指向的地址向下移动i,而是p的取值发生了变化,这段我单独试了试p[i],发现在输出值时可以用,单独写出来输出竟然是跳过不运行,晕
(gdb) p p
$7 = (int *) 0x7fffffffde38
(gdb) p &a
$8 = (int *) 0x7fffffffde38
(gdb) p p[1]
$9 = 2
(gdb) p *p
$10 = 4
(gdb)
0x7fffffffffff大概是栈内存的顶部?
老师没在chenge里展示已经调换了的局部变量ab直接跳回main了
对象--两个“象”字,老师的脑洞好萌
C语言不对数组下标做检查,越界也不报错。 所以arrar[2]编译没报错。
讲的很形象,老师很有趣
会一点linux,也会一点c,听着还是有一小点懵...
。。。一般temp就用 tmp 表示的- -
听不懂。。。。。。。
include <stdio.h>
int main()
{
char str[]="hello";
char *str2="world";
char str3[10];
printf("input the value \n");
scanf("%s",str3);
printf("str is %s\n",str);
printf("str2 is %s\n",str2);
printf("str3 is %s\n",str3);
}
~
课程须知
本课程是C语言中级课程,为了更好的学习效果: 1、需要有一定的C语言基础,如果没有基础的同学可以看《C语言入门》这门课。 2、本课程是在Linux环境下讲解,需要熟悉一些Linux命令。如果不了解的话可以在《Linux C语言编程基本原理与实践》这门课程中补充
老师告诉你能学到什么?
1、C语言中的指针是怎么回事 2、Linux下gdb调试工具是怎样使用的 3、指针与内存有着怎样的关系 4、数组与字符串之间的联系

微信扫码,参与3人拼团

推荐路线系统化学习,打造阶梯学习模式

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消