我想知道哪一個更好的傳遞地址指針的這兩個實現。第一個數據交換是否在第二個數據交換中沒有發生?第二個是更有效的方法嗎?更可讀?兩者相同?將函數的引用傳遞給C++中的指針,哪種方式更好?
1版
void ptrFunction(int& arg)
{
int* ptr = &arg;
std::cout<<"The pointer's value:" << *ptr << "\n";
}
int main()
{
int x=5;
ptrFunction(x);
return 0;
}
2版
void CallViaPointers(int *arg)
{
int *ptr = *arg;
std::cout << "The pointer's value: " << *ptr;
}
int main()
{
int x = 100;
CallViaPointers(&x);
return 0;
}
等等...這兩個等價物嗎? – 2011-02-09 02:52:53
@muntoo:不,版本1中x = 5,版本2中x = 100) – Oystein 2011-02-09 02:57:23
@Øystein哈哈。 :)無視這一點,版本1應打印5,但我不知道版本2. – 2011-02-09 03:23:01