c中指针指向什么类型的内存?

What type of memory is pointer pointing to in c?

我试图更深入地理解指针,但我遇到了一种情况,我不知道指针指向什么类型的内存。我是否理解正确,如果指针通过 malloc()calloc() 指向动态分配的变量,那么指针指向 RAM 并且如果有静态数组或一些变量然后指针指向内存(SSD/HDD)?

没有。从概念上讲,所有内存都是 RAM,从管理它的 OS 借用(如果有 OS)。 statics/globals 和动态内存之间的区别在于 statics/globals 被设计为永远不会 returned 到 OS 直到程序 exits/dies 而动态分配的内存(malloc/calloc/mmap) 在概念上是 returnable,这就是 free/munmap 的用途。

(请注意,当您 free malloc'd/calloc' 内存时,您仅 return 进入您的 C 标准库,其中 return 自行决定将其发送给 OS(如果有的话)。)