实际发生在i,k; k& = i;

时间:2012-10-17 14:20:33

标签: c++

作为初学者学习指针,我写了类似

的内容
int i = 1,
    j = 2,
    k;

k &= i;
i = 3;

期待k指向i但是,我很快发现错误是k不是int指针,只是int 。但它编译并运行原因?

3 个答案:

答案 0 :(得分:21)

k &= i;

的缩写形式
k = k & i;

其中&是按位and。它与指针无关。

如果您想让k指向i,则需要将其设为指针:

// v
int* k;

并将它们指向i

k = &i; // NOTE: different from k &= i;

答案 1 :(得分:2)

& =与k = k&一世。 &安培;是按位AND运算符。

答案 2 :(得分:2)

k &= i相当于k = k & i,这是一个按位和操作。

相关问题