最新回答 / 不看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仅仅...
2017-08-13
最新回答 / Galaxy_Answer___
感觉是编译器和系统的原因,我打印出来也不是视频里面的那个样子,我估计是系统或者GCC对内存的管理有点不一样导致的,以为每个版本的系统内存优化会有点差别,gcc也是,从而导致了这样。我猜是这样的。。。。。。
2017-07-30
最新回答 / 实时编程
正常情况下 地址的分配简单的理解为 按 源代码 从上往下 没有问题 一般情况下 是这样 。 这里可能 编译器 如果优化 或许 会不一样 但是暂时 不考虑这个情况 但是 在你的代码里 这些 变量 是分配到 系统的栈内存 的 栈内存 跟操作系统内核 一样在高位就是 假设你是32位系统 系统内存 占用2g 内存 那么 你的地址 大概分配情况就行 0x FF FF FF FF 这个是内存的 首地址 然后 往下一直是内核地址 直接到 2g内存结束 大概 位置为 1000 0000 0000...
2017-06-20
最赞回答 / 慕粉1712147504
首先c++是向c语言嫁接了面向对象编程工具。c++是c的一个超集,意味着任何c程序都同时是,或者差不多是一个有效的c++程序。简单的从概念上说没有区别:1。C++语法中新增了“类”的概念,2。c++可以理解为c的升级版本,c中的语法百分之九十九c++都能使用,反过来c不能使用c++的部分语法和关键字希望能帮到你
2017-06-15
最赞回答 / Mrwhatsup
函数每次调用都会有他独立的栈帧,是从是从高地址向低地址延伸的,栈帧底部为高地址,栈顶为低地址。相当于分配了一段固定的内存空间。而定义的变量在这段空间内部,地址是由低到高的。
2017-06-02
最赞回答 / popo3418953
一般把源代码编译完成为目标文件的代码就存在代码段;调用的函数指针的顺序就存放在栈内存,可以理解为栈的先进后出就是函数的调用的顺序;打印函数内部变量在代码段的存储位置:首先要用bt 显示你的栈内存顺序,再用f + 编号,进去你想打印变量所在的函数里面,再用p+ &变量名字,即可打印;
2017-06-01
最赞回答 / _百慕大
其实吧,给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'的,会把它...
2017-04-29