C++ i,k内实际发生的情况;k&;=我

C++ i,k内实际发生的情况;k&;=我,c++,C++,作为一个初学者,我写了一些 int i = 1, j = 2, k; k &= i; i = 3; 期望k指向i,但是,我很快发现错误在于k不是int指针,只是int。但它编译并运行为什么 k &= i; 是的缩写形式 k = k & i; 其中,和是按位的和。它与指针无关 如果要使k指向i,则需要将其设置为指针: // v int* k; 让他们指向i: k = &i; // NOTE: different from k &=

作为一个初学者,我写了一些

int i = 1,
    j = 2,
    k;

k &= i;
i = 3;
期望
k
指向
i
,但是,我很快发现错误在于
k
不是
int
指针,只是
int
。但它编译并运行为什么

k &= i;
是的缩写形式

k = k & i;
其中,
是按位的
。它与指针无关

如果要使
k
指向
i
,则需要将其设置为指针:

// v
int* k;
让他们指向
i

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

&=与k=k&i.&是按位AND运算符。

k&=i
相当于
k=k&i
,这是一种按位AND运算。

我想你把
k&=i
理解为
k=&i
。它们非常不同,甚至比
i-=1
i=-1
更为不同。