C语言 对如何分配内存感到困惑



我正在观看一个关于指针和内存的视频,我很困惑,因为我认为内存地址是1字节,但在视频中他说它们是32位(4字节),如果我们有int a = 2,它将存储在一个内存地址中,但是一个整数不会存储在4个单独的内存地址中,因为它们是最大的4字节长?

指针指向单个字节。当你存储大于一个字节的东西时,它被分散在多个连续的字节上,指针指向这些字节中的第一个。编译后的代码使用可以从内存中读写多个字节的指令来处理整个程序。

所以你是正确的,一个32位整数将存储在4个独立的(但连续的)内存位置。

这就是为什么我们必须在c语言中声明指针的类型。当你对指针进行定义时,类型用于确定从该地址开始读或写的字节数。

相关内容

  • 没有找到相关文章

最新更新