2013-11-23 62 views
-1

是什麼指針聲明語法

Simple_window* sw 

Simple_window *sw 

這裏簡單的窗口只是類和SW之間的區別是該類創建的對象。

回答

1

根據*角色的位置沒有區別。

有人會說,

Simple_window* sw 

優越,因爲它的指針指示*與類型名稱Simple_window關聯給真正的類型:Simple_window*,即「指向Simple_window」。

其他人說,最好把*特寫鏡頭對變量,因爲C++將只爲下一個變量解釋它。也就是說,

Simple_window* sw, anotherSw 

實際上宣告sw爲指針,並anotherSw作爲非指針Simple_window對象!正因爲如此,使用多個聲明時,關閉對變量版本可能會更好地指示意圖。

Simple_window *sw, *anotherSw 

由於這個問題,我習慣於不使用多個對象的單行聲明。

我更喜歡第一個版本,與我曾經讀過的描述一致,它更像「C++ - like」。

+0

沒有*語義*差異,至少。 *有*文體上的差異,可以說是一種可以優於另一種。 – 2013-11-23 23:15:54

0

有除了

Simple_window* sw 

太大的差別是不意味着要定義的類型Simple_window*的變量而

Simple_window *sw 

意味着您所定義的類型的Simple_window指針,它們兩者基本上都是指針。

的差出現,當正在定義多個變量在一起,例如:

int* x, y, z; 

意味着x,y和z是所有的指針,其中它們不(僅x是)。 第二版本不存在這個問題:

int *x, y, z; 

換句話說,因爲*綁定到變量名稱,而不是類型,是有意義的把它旁邊的變量名。