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

Linux C语言指针与内存

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

最赞回答 / 慕粉1712147504
首先c++是向c语言嫁接了面向对象编程工具。c++是c的一个超集,意味着任何c程序都同时是,或者差不多是一个有效的c++程序。简单的从概念上说没有区别:1。C++语法中新增了“类”的概念,2。c++可以理解为c的升级版本,c中的语法百分之九十九c++都能使用,反过来c不能使用c++的部分语法和关键字希望能帮到你

最新回答 / 骑车去拉萨
根据内存地址。内存地址从大到小依次为系统内核,栈,堆,数据段,代码段

最新回答 / 慕无忌5762020
无论堆还是栈 都是自顶向下 从大到小 

最赞回答 / Mrwhatsup
函数每次调用都会有他独立的栈帧,是从是从高地址向低地址延伸的,栈帧底部为高地址,栈顶为低地址。相当于分配了一段固定的内存空间。而定义的变量在这段空间内部,地址是由低到高的。

最赞回答 / popo3418953
一般把源代码编译完成为目标文件的代码就存在代码段;调用的函数指针的顺序就存放在栈内存,可以理解为栈的先进后出就是函数的调用的顺序;打印函数内部变量在代码段的存储位置:首先要用bt 显示你的栈内存顺序,再用f + 编号,进去你想打印变量所在的函数里面,再用p+ &变量名字,即可打印;

最赞回答 / qq_懒散的小猫咪_03912928
a定义的是变量,不是常量;a=3;只是给a赋予一个初始值。常量是用define声明的

最赞回答 / Klause
自己用gdb打印指向地址看看就好了。

最赞回答 / _百慕大
其实吧,给char数组赋值时,是一个char一个char赋的,虽然规定的是宽度是10,但只是规定了str3最后一个char即str3[9]为'\0',当我们手工赋值时,赋了一大串的a,如:str3[0]='a',str3[1]='a'...str3[9]='a',str3[10]='a'...,在这里就把str3[9]给改成了'a'输出时,其实是指针的移动,在没遇到'\0'前是一直不会结束的,在内存中大多数空间都为'\0',所以可以结束输出,即题主所给出的图片所示,当然,有时候遇到了不是'\0'的,会把它...

最新回答 / 后会无期_
那个乱码应该不是数组的内容而是没有分配的地址打印出来了。

最新回答 / 墨染流年1008
按功能来讲应该是输入10个数据存入数组内,另外scanf的返回值是表示输入参数的个数,无效的输入返回0
课程须知
本课程是C语言中级课程,为了更好的学习效果: 1、需要有一定的C语言基础,如果没有基础的同学可以看《C语言入门》这门课。 2、本课程是在Linux环境下讲解,需要熟悉一些Linux命令。如果不了解的话可以在《Linux C语言编程基本原理与实践》这门课程中补充
老师告诉你能学到什么?
1、C语言中的指针是怎么回事 2、Linux下gdb调试工具是怎样使用的 3、指针与内存有着怎样的关系 4、数组与字符串之间的联系

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消