2014-12-04 104 views
-4

所以我知道一個指針是:int *在這裏是什麼?

int *someNumber; 

,但我已經與運行翻過一些代碼:

int* pOutputData = nullptr; 
byte* pOutputDataByte = nullptr; 

是什麼INT *是什麼意思?

是一些int的數組?它是一個指向類型的指針嗎?

回答

4

int *int*是一樣的東西。空白不會改變任何東西。

int *既可以用作指向int的指針,也可以用作指向數組int的第一個元素的指針。如何使用變量取決於上下文。根據變量名稱判斷,我猜想someNumber指向一個單獨的intpOutputData指向一個數組。

+2

'INT *'是*始終*的指針'int'對象。這個「int」對象可能是也可能不是數組的第一個元素(或者任何元素)。 – 2014-12-04 02:56:33

+1

@KeithThompson:它可能也是一個指針*後面的一個'int'對象,或'NULL' ... – Deduplicator 2014-12-04 03:05:28

+0

@Deduplicator:Touché。 – 2014-12-04 03:09:26

1

兩者都是相同

空白並不在C意味着什麼

int * num ; 
int *num; 
int* num; 

所有上述內容一樣的!

我們使用int *作爲默認值;主要是數據結構,以避免混淆。

+0

在C中,傳統的間距是'int * num;',因爲它反映了語法。在C++中,傳統的間距是'int * num',因爲這就是Bjarne Stroustrup喜歡的。或者沒問題 - 但不要寫'int * foo,bar;',它將'foo'定義爲'int *','bar'定義爲'int'。 – 2014-12-04 03:11:20

1

總是從右讀指針變量向左

int *p means p is a pointer to an int 

char *p means p is a pointer to a char 
const int *p means p is a pointer to an integer constant 

int * const p means p is constant pointer to an int