小编Ric*_*lya的帖子

为什么要更改这两个代码的输出中的“&”字符?

第一个代码:

int a = 1;

void func(int* ptr) {
    ptr = &a;
}

int main() {
    int nvar = 2;
    int* pvar = &nvar;
    func(pvar);
    std::cout << *pvar;
}
//Output: 2
Run Code Online (Sandbox Code Playgroud)

第二个代码:

int a = 1;

void func(int*& ptr) {
    ptr = &a;
}

int main() {
    int nvar = 2;
    int* pvar = &nvar;
    func(pvar);
    std::cout << *pvar;
}
//Output: 1
Run Code Online (Sandbox Code Playgroud)

唯一的区别是'func'函数中的'&'字符。但是有人可以解释一下我,在这种情况下会做什么?

c++ pointers reference dereference

1
推荐指数
1
解决办法
63
查看次数

标签 统计

c++ ×1

dereference ×1

pointers ×1

reference ×1