2014-05-18 29 views
-1
int i=int(); //OK 
int* pi=int*(); //error 

如何正確地做到這一點?如何通過指針顯式創建臨時?

+0

我不明白你想要做什麼。你能詳細說明一下嗎? – Mat

+0

他正在嘗試構建一個指向int的指針:)請參閱我的回答 – Mzn

+1

'typedef int * ptr; ptr pi = ptr()'的作品,但我不知道如何在沒有'typedef'的情況下做到這一點。 – anatolyg

回答

2

您可以用默認初始化統一初始化他們兩個。

int i{}; 
int *ip{}; 

像調用這樣的構造函數是不必要和複雜的,當然,對於某些類型,您發現自己的行爲不同。

如果你想要做的是有指針指向分配給一個int空間,你需要用new

int *ip = new int; 

分配或給它的現有INT

地址
int i{}; 
int *ip = &i; 
1

你不能構造一個指針。

  1. 獲得一個參考:您可以通過把它

    int x; 
    int* xpointer = &x; //pointer to x 
    
  2. 使用new創建:

    int* x = new int;