【发布时间】:2014-12-31 20:47:03
【问题描述】:
对于一个项目,我需要将指针从 int 转换为 char 以对十六进制值执行字节切换。唯一需要注意的是,我不能使用 & 号。
所以我让它与这行代码一起工作:
int x = 5000;
char * ptr = (char *)&x;
但显然我需要找到一种方法来强制转换此指针而不使用 & 符号。有谁知道这样做的方法?我一直在寻找,但没有找到不涉及使用与号或其他我不允许使用的运算符(|、[、]、>、^)的方法。
【问题讨论】:
-
&在这里不是位运算符。 -
这个问题似乎离题了,因为它只是将 & 的功能误认为是位运算符。
-
您的问题是您不能使用位运算符“指针表示法除外”。
&x是指针表示法(无论如何它并不是一个真正的例外,因为在这种情况下,'&' 不是位运算符)。 -
所以,实际上并没有覆盖地址...
-
你真的不能用
[和]?
标签: c pointers casting ampersand