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

Linux C语言指针与内存

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

最新回答 / 不看6324不混吃等死
查到了    int a[10];  a ,&a和&a[0] 都是分别是什么?先说明a ,&a和&a[0]三个值是的相等哈。a叫做数组名,是数组首元素的地址,也就是&a[0]的值。像是一个指针类型,是一个int型的指针类型,int *,先理解成指针吧。&a这才是一个真正的指针,是一个数组指针。是数组的地址。切记:&a不是指向指针的指针,因为&a和a的值相等,但是*&a和*a的值不相等。*&a和a的值一样,说明*&a仅仅...

最新回答 / Galaxy_Answer___
感觉是编译器和系统的原因,我打印出来也不是视频里面的那个样子,我估计是系统或者GCC对内存的管理有点不一样导致的,以为每个版本的系统内存优化会有点差别,gcc也是,从而导致了这样。我猜是这样的。。。。。。

最新回答 / 实时编程
正常情况下 地址的分配简单的理解为 按 源代码  从上往下  没有问题 一般情况下 是这样 。 这里可能 编译器 如果优化 或许 会不一样  但是暂时 不考虑这个情况 但是 在你的代码里  这些 变量 是分配到 系统的栈内存 的  栈内存  跟操作系统内核 一样在高位就是  假设你是32位系统 系统内存 占用2g 内存 那么  你的地址   大概分配情况就行 0x  FF FF FF FF  这个是内存的 首地址 然后 往下一直是内核地址 直接到  2g内存结束 大概 位置为 1000 0000 0000...

最赞回答 / 慕粉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'的,会把它...
课程须知
本课程是C语言中级课程,为了更好的学习效果: 1、需要有一定的C语言基础,如果没有基础的同学可以看《C语言入门》这门课。 2、本课程是在Linux环境下讲解,需要熟悉一些Linux命令。如果不了解的话可以在《Linux C语言编程基本原理与实践》这门课程中补充
老师告诉你能学到什么?
1、C语言中的指针是怎么回事 2、Linux下gdb调试工具是怎样使用的 3、指针与内存有着怎样的关系 4、数组与字符串之间的联系

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消