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

Linux C语言指针与内存

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

已采纳回答 / DoDream
等号左边的意思是定义一个函数指针pquadrate,将quadrate函数的地址赋给pquadrate,quadrate是一个返回值是int,有一个int参数的函数。推荐你一个不错的网站,百度搜索C++技术网,第一个就是了,里面有一些C语言的教程,那些人写得挺用心,通俗易懂,能学的东西还挺多,这个网站还有很多不错的资源可以下载,例如电子书,IDE等,如果你技术上来了,还可以去做一下里面的练习小项目,感觉收获丰富。

已采纳回答 / onemoo
编译器不会对数组访问越界进行检查。因为数组和指针是有密切联系的,很多时候编译器无法确定你访问的位置是否在合理的范围内,所以编译器就干脆对此不检查了。  实践中,有经验的程序员经常活用这种数组和指针的关系。当然,你这两行代码确实是错的,对array[3]的访问确实越界了。虽然能编译通过,但运行时可能会发生错误。

最赞回答 / MLKG88
你的输出是对的,我的和你的一样,可能是你的代码和视频的代码不同
定义指针变量时在变量类型和变量名中间加个 *, 指针变量的值本身是一个地址,在使用指针变量时,如果,在指针变量前加一个*表示取指针变量的值表示的地址中的内容,如果不加*则表示取指针变量的值,就是指针变量存的地址。
函数指针,不过说白了就是这样:
int quadrate(int a);
// main中
int a=3;
int (*p)(int a);
p = &quadrate;
int s = (*p) (a);
//最后就相当于quadrate(a)
&a:返回变量a的内存地址

*a:用来保存变量a的内存地址

&和*运算符恰好相反。&运算符接收一个数据,然后告诉你这个数据保存在哪里;*运算符接收一个地址,然后告诉你这个地址中保存的是什么数据。

例:int *a = &a

已采纳回答 / 雾青依
这是因为int array[2]还有一个为'\0'的结束数组符,而int array[]={0,1}则没有'\0'这个结束符
说得很好,很清晰。这才是计算机C语言课程,以前上的课都没懂,看这个就懂了。强大。
老师语速好快~这个视频一定是要求中文听力专业8级的 哈哈
^_^ 讲的不错
电牛~电流,老师口音
听不懂,先标记一下
课程须知
本课程是C语言中级课程,为了更好的学习效果: 1、需要有一定的C语言基础,如果没有基础的同学可以看《C语言入门》这门课。 2、本课程是在Linux环境下讲解,需要熟悉一些Linux命令。如果不了解的话可以在《Linux C语言编程基本原理与实践》这门课程中补充
老师告诉你能学到什么?
1、C语言中的指针是怎么回事 2、Linux下gdb调试工具是怎样使用的 3、指针与内存有着怎样的关系 4、数组与字符串之间的联系

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消