关于C语言指针读取内存地址的问题,高手请进
在内存中给每一个存活的变量一个足够大的空间来存储其值,于是该块空间的地址理应成为一个唯一值,列如已知一个int型变量num在内存中的地址为0012FF60,该变量的值为1...
在内存中给每一个存活的变量一个足够大的空间来存储其值,于是该块空间的地址理应成为一个唯一值,列如已知一个int型变量num在内存中的地址为0012FF60,该变量的值为10。
可为什么用利用指针读出来的值却不是10呢?
详解:我一共创建了2个工程,第一个工程:
#include <stdio.h>
int main(void)
{
int num=10;
printf("%d \t %p",num,&num);
getchar();
return 0;
}
然后我到debug下运行了该项目的exe文件。得到CMD窗口,内容如下
10 0012FF60(光标闪烁处)
这时num这个变量应该是在内存中存活的。
我又运行了第二个项目
#include <stdio.h>
int main()
{
int *p;
p=0x0012FF60; //指向num变量的地址
printf("%d",*p);
}
得到的结果却不是10。是一个随即的数字。请高手帮我。
补充一下,看了下面几位的回答的确感到惭愧。那么有没有什么办法可以访问到它 展开
可为什么用利用指针读出来的值却不是10呢?
详解:我一共创建了2个工程,第一个工程:
#include <stdio.h>
int main(void)
{
int num=10;
printf("%d \t %p",num,&num);
getchar();
return 0;
}
然后我到debug下运行了该项目的exe文件。得到CMD窗口,内容如下
10 0012FF60(光标闪烁处)
这时num这个变量应该是在内存中存活的。
我又运行了第二个项目
#include <stdio.h>
int main()
{
int *p;
p=0x0012FF60; //指向num变量的地址
printf("%d",*p);
}
得到的结果却不是10。是一个随即的数字。请高手帮我。
补充一下,看了下面几位的回答的确感到惭愧。那么有没有什么办法可以访问到它 展开
6个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询