2

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

int i = 1,
    j = 2,
    k;

k &= i;
i = 3;

期待k指向i,然而,我很快发现错误是那k不是一个int指针,只是一个int. 但它编译并运行为什么?

4

3 回答 3

21
k &= i;

是的缩写形式

k = k & i;

&按位在哪里and。它与指针无关。

如果要k指向i,则需要使其成为指针:

// v
int* k;

并使其指向i

k = &i; // NOTE: different from k &= i;
于 2012-10-17T14:21:41.980 回答
2

&= 与 k = k & i 相同。& 是按位与运算符。

于 2012-10-17T14:21:59.520 回答
2

k &= i相当于k = k & iwhich 是按位与运算。

于 2012-10-17T14:22:18.890 回答