已采纳回答 / lifeforme
对于这个问题 请教了一些大神 给我的答案是:在你调试的时候,系统运行在保护模式,内存不会溢出。你所看到的地址其实是系统映射出来的,实际上不存在。你以为你在访问某地址 其实并没有真正访问具体的内存地址
2016-02-04
最赞回答 / 热喷Redpen
我把代码稍微改一下: int* a;这里的a就是代表指针变量(int*),而不是一个整型变量(int)所以a存放的是地址,*a才是地址中存放的值(这里的*与第一行的*不同,这个*是取地址的意思)
2016-01-27
最赞回答 / 刘小宇0215
先回答第二个问题,注意是16进制,不是十进制,内存可能分配半个字节吗,随着内存越来越廉价,程序设计一般是空间换时间,每个数组是int的四个字节。第一个问题是二维数组赋值给一维数组,应该很好理解,不过我不理解你为什么将那个表达式称为常量表达式,应该是变量表达式吧,而且这个数组[]里应该最大是11,而不是12也不会是12以上,具体细节如果不懂的话,建议你最好在命令行用gdb一步步的慢慢调试,我也是刚刚学,不过你犯的是常识错误。
2016-01-21
最新回答 / 奔跑的蜗牛Kevin
1、CPU的寻址能力以字节(byte)为单位 ,如32位的CPU可以寻址2的32次方的地址也就是4GB;2、32位、64位操作系统中的“位”并非计算机中的bit!!!
2016-01-12
已采纳回答 / 小蜗牛不回头
首先,int *p, *表示p是一个指针变量,int 表示指针p指向整形变量。其次,C语言规定指针变量占四个字节,四个字节里面(如p)存放的是指向的变量的地址值(a的地址值,好比家的门牌号)
2015-12-19
最新回答 / 劷鹿
s(step)执行一行源代码并且进入函数内部;f(frame)切换调用的上下文,进入相应的栈里,使用该命令可以打印栈层编号,当前的函数名,函数参数值,函数所在的文件及行号,函数执行到的语句等等;。。。。
2015-11-15
最新回答 / 实时编程
1,0x 表示16进制 我们平时说的数字就是10进制 方便区分 2,堆内存 一般情况下是 自己申请的 一般用malloc 申请的内存 是堆内存一般我们的变量 会放在 栈内存 栈帧 也是在栈内存 的 一般情况 下 堆内存 需要 主动调用 3, 寄存器 属于硬件 已经不是内存了CPU 可以直接 从寄存器 取数据 这样 比从内存取快非常多不过寄存器 内存 还有缓存 之间 关系 都是 由操作系统 处理的我们在编程过程一般理解为 从内存取数据而已 这个 一般 会在 操作系统 和组成...
2015-11-05