作为一个学习指针的初学者,我写了如下内容
int i = 1,
j = 2,
k;
k &= i;
i = 3;
然而,期望k
指向i
,我很快就发现错误在于k
不是int
指针,而只是一个int
。但是它为什么会编译并运行呢?
发布于 2012-10-17 14:21:42
k &= i;
是的缩写
k = k & i;
其中&
是按位and
。它与指针无关。
如果你想让k
指向i
,你需要让它成为一个指针:
// v
int* k;
并将其指向i
k = &i; // NOTE: different from k &= i;
发布于 2012-10-17 14:22:00
&=与k=k& i相同。&是按位AND运算符。
发布于 2012-10-17 14:22:19
k &= i
等同于k = k & i
,它是一种按位and运算。
https://stackoverflow.com/questions/12936465
复制相似问题