一个C语言的题目,为什么我写的程序最后输出是地址?不是值?

一个C语言的题目,为什么我写的程序最后输出是地址?不是值?,第1张

最后输出的并不是地址,而是b数组逻辑越界后的值(最后一个已经物理越界了),原因是你没把printf用括号睁掘察括进去,散孝导致printf不在内悉茄循环内

内循环加个大括号就好

for (i = 0 i < n i++)

{

 for (j = 0 j < LINES j++)

 {//加个大括号

    br[i][j] = 2 * ar[i][j]

    printf("%d", br[i][j])

  }//

}

虚拟差好铅地址,是程序的地址,程序在 *** 作系统中有入口地址,而程序中的地址则是入口地址的相对位置袜烂

物理地址就是,机器内主存的地址,包括RAM和ROM

虚拟地址就是,cpu支持的内存空间远远大于机器主存的大小,这些多出来的空间对于程序来说是可以用的,这个时候的所有地址都称为虚拟地址。

这个要学 *** 作系统才能理解,推荐看虚好

人民邮电出版社

你用的工具不正确,你用的这个窗口是用来看变量或寄存器的,不能直接看物理地址。

你山培用memory window来看具体的内存地址:菜单view->memory window打开

在address中输入:d:0x30回车就能看逗凳唯到地址30H及以后的RAM数据了。

同理,c:0x30是粗棚看程序区的内容,x:0x0030是看外部RAM中的数据。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12549971.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存