【发布时间】:2017-02-12 18:08:39
【问题描述】:
我已经阅读了几篇关于将 int 指针转换为 char 指针的帖子,但我仍然对一件事感到困惑。
我知道整数占用四个字节的内存(在大多数 32 位机器上?)而字符占用一个字节的内存。通过将整数指针转换为 char 指针,它们是否都包含相同的地址?强制转换操作是否会更改 char 指针指向的值?即,它只指向整数的前 8 位而不是所有 32 位?当我将 int 指针转换为 char 指针时,我对实际发生的变化感到困惑。
【问题讨论】:
-
整数占用四个字节 ...取决于平台
-
@LPs C 规范保证
sizeof(char) == 1. -
@CareyGregory 好吧,我的错。我的意思是,在某些架构 (DSP) 上,一个字节的内存是 32 位。
-
@LPs 是的,可能是这样。规范没有说明一个字节有多少位。