指针地址存储器属于RAM还是硬盘? #包括 int main(){ int num=1234; printf(“%p”、&num); 返回0; } //输出: //0xffffcbfc
0xffffcbfc是RAM还是硬盘驱动器地址内存?严格来说,该代码表现出未定义的行为。您必须将指针转换为指针地址存储器属于RAM还是硬盘? #包括 int main(){ int num=1234; printf(“%p”、&num); 返回0; } //输出: //0xffffcbfc,c,C,0xffffcbfc是RAM还是硬盘驱动器地址内存?严格来说,该代码表现出未定义的行为。您必须将指针转换为void*,因为%p希望: #include <stdio.h> int main() { int num=1234; printf("%p", &num); return 0; } //Ouput: //0xffffcbfc 从C的角度来看,可能还没有确切说明什么样的物理设备拥有这个地址,但在一台典型的计算机上,它将是RAM。它是一个堆栈地址
void*
,因为%p
希望:
#include <stdio.h>
int main() {
int num=1234;
printf("%p", &num);
return 0;
}
//Ouput:
//0xffffcbfc
从C的角度来看,可能还没有确切说明什么样的物理设备拥有这个地址,但在一台典型的计算机上,它将是RAM。它是一个堆栈地址,在概念上是RAM。它不是一个真正的物理RAM地址(在现代系统中),实际上只反映了内核的簿记功能。具有HD的计算机上的程序总是由操作系统加载到RAM中并从那里执行。所有地址都将指向RAM
您不能直接从程序寻址HD内存,您必须通过文件系统。严格来说,当打印变量的地址时,您看到的地址来自虚拟内存(大多数情况下,您将在使用虚拟内存的操作系统上运行程序) 如果您的操作系统不使用虚拟内存,则地址将直接来自RAM
要运行程序,必须将其加载到内存(RAM)中。简而言之,您将无法从硬盘中获取地址。如何获取表达这些主题的参考资料。
printf("%p\n", (void *) &num);