在代碼中進行了函式呼叫。在第一個函式呼叫中,通過參考傳遞呼叫指標函式。在第二個函式呼叫中,在呼叫參考函式的地方執行值傳遞。
為什么會這樣?
#include <iostream>
void f(int *p) { (*p) ; }
void f(int &p) { p-=10; }
int main() {
int x=0; f(&x); f(x); f(&x);
std::cout << x << "\n";
}
uj5u.com熱心網友回復:
x是一個int變數。 &x正在獲取 的地址x,產生一個int*指標。
f(&x)不能將int*指標傳遞給int&參考,但它可以傳遞給int*指標,因此它呼叫:
void f(int*)
f(x)不能將int變數傳遞給int*指標,但可以傳遞給int&參考,因此它呼叫:
void f(int&)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/421359.html
標籤:
下一篇:Golang使用標志執行函式
