【发布时间】:2015-11-05 18:16:23
【问题描述】:
我们有一个如下所示的程序:
int TEST = 7;
// Put code here
*((int*) (p + 8)) |= 0x3f;
// TEST should be now 0x3f
您可以看到变量 p 未声明。我的问题是变量 p 应该是什么,以便 TEST 为 0x3f?
我已经试过了:
int *p = &TEST;
您现在可以使用指针 p 更改 TEST 的值,但它似乎不适用于 *((int*) (p + 8)) |= 0x3f;
【问题讨论】:
-
到底是什么
*((int*) (p + 8)) |= 0x3f; -
@GradyPlayer 我猜是声明?
-
闻起来像学校作业
-
@GradyPlayer
8被添加到p,结果被转换为“pointer to int”类型,指向的值与0x3F进行位或运算。
标签: c pointers bit-manipulation bitwise-operators bitwise-or