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