c++ - 在 i, k 中实际发生了什么; k &= i;

标签 c++

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

int i = 1,
    j = 2,
    k;

k &= i;
i = 3;

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

最佳答案

k &= i;

的缩写形式
k = k & i;

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

如果你想让k指向i,你需要让它成为一个指针:

// v
int* k;

然后他们让它指向i:

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

关于c++ - 在 i, k 中实际发生了什么; k &= i;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12936465/

相关文章:

C++ FAQ Lite Smart_Ptr 类无法运行?

c++ - 常量和其他动物

c++ - OpenGL Performer 最简单的移植路径?

c++ - 自定义流对象错误?

c++ - 将类添加到 vector 不起作用

c++ - 打印每个操作数的单独语句

c++ - 双向链表的内存泄漏

c++ - 防止用户从不正确的 CRTP 基础派生

c++ - 如何防止调整自定义 QWidget 的大小?

c++ - Visual C++ 2008 Boost 问题