例如這樣的代碼:如何精確地用C此代碼的工作++
#include <iostream>
using namespace std;
void foo(int* x){ cout << "X = " << *x << endl;}
int main()
{
int value = 5;
int *p = &value;
foo(p);
foo(&value);
return 0;
}
在功能foo
指針p的副本(x)的實際函數內創建的第一個呼叫,並且一旦被刪除的功能結束,對吧?在foo
的第二次調用中,獲取變量值的地址並用該地址創建一個指針x,並在函數結束後立即刪除,對嗎?在堆棧內存消耗方面,這些調用中的哪一個更便宜?或者都是一樣的東西?
他們最終在語義方面做同樣的事情。我只是堅持第二。但是,如果你真的使用C++,那麼引用可能更適合。 – chris
請不要將有關指針的C++帖子標記爲「C」參考「 –
哈哈,我沒想到回覆如此之快。謝謝你的回答,那麼,你的意思是第二個更好呢?如果是那麼爲什麼?在此先感謝,併爲Taggin C sry,Im新 – user1836252