将指针传递给函数?

时间:2014-11-07 12:30:25

标签: c++

为什么这段代码无效?

void callbyreference (int& adam) {
    cout << adam << endl;
}

int main() {
    int *beta = new int();
    *beta = 34;
    callbyreference(beta);
}

2 个答案:

答案 0 :(得分:2)

由于beta是指向int的指针,但callbyreference没有指针参数 - 因此需要参考。
引用不是指针。

你可以说

void callbyreference (int* adam) {
    cout << *adam << endl;
}

int main() {
    int *beta = new int();
    *beta = 34;
    callbyreference(beta);
}

void callbyreference (int& adam) {
    cout << adam << endl;
}

int main() {
    int beta = 34;
    callbyreference(beta);
}

答案 1 :(得分:0)

void callbyreference (int& adam) {
    cout << adam << endl;
}

int main() {
   int *beta = new int();
   *beta = 34;
   callbyreference(*beta);
}