2011-09-17 120 views
-5

我熟悉的所有編程語言(C/C++,Java,C#,Objective C)都接受這兩種符號。所以我想知道哪個在語義上是正確的:Object* myObjObject *myObj對象*或對象*?

+2

Java?你確定? –

回答

1

嗯,這取決於。兩者都是正確的,但我通常使用Object *,因爲指針本身可以被認爲是一種類型,並且它更具可讀性。

但是有一個問題。 C中的指針實際上只是一種類型的修改,而不是真正的類型。如果你在一個單一的線,因爲這聲明多個變量:

Object *a, b; 

您將有a作爲指針對象和bObject一個實例,所以我想,正確的做法是把指針與變量。

+1

這就是爲什麼許多編碼風格準則堅持每個語句都有一個變量定義的原因。 –

+0

這就是大衛!每個聲明使用一行,我認爲Object *方法更具可讀性! :D –

1

哪個語義正確?

語義上它們是相同的。因此,你使用的是品味的問題。你應該更喜歡


其中味道?那麼,你可以寫object* a, b,並認爲你已經宣佈了兩個指針。當然你還沒有,你宣稱a是一個指針,而b是一個對象。

所以你應該更喜歡object *a, bobject* a, b。不過,我相信這是最好還要爲每個變量聲明一行:

object *a; 
object b; 

這種做法有沒有範圍混亂,是由許多編碼風格指南推薦。

+0

它們在語義上不相等。一個是聲明的一部分,另一個是對象的一部分。 – superM

+0

它們在語義上是相同的。他們的意思是一樣的。我想知道你對語義的含義是正確的嗎? –

+0

正如Daniel指出的那樣,'object * a,b'聲明'a'是一個指向'object'的指針,''b'是一個'object'。 –