作为初学者学习指针,我写了类似的东西
int i = 1,
j = 2,
k;
k &= i;
i = 3;
Run Code Online (Sandbox Code Playgroud)
然而,期待k指出i,我很快发现错误是指针k不是int指针,只是一个指针int.但它编译并运行原因?
Kir*_*rov 21
k &= i;
Run Code Online (Sandbox Code Playgroud)
是简短形式
k = k & i;
Run Code Online (Sandbox Code Playgroud)
在哪里&是按位的and.它与指针无关.
如果你想k指向i,你需要使它成为一个指针:
// v
int* k;
Run Code Online (Sandbox Code Playgroud)
他们指出i:
k = &i; // NOTE: different from k &= i;
Run Code Online (Sandbox Code Playgroud)