C多個單行聲明
回答
只有x
是int的指針; y
和z
是常規整數。
這是C聲明語法的一個方面,它讓一些人前往。 C使用聲明符的概念,該概念引入了聲明的名稱以及未由類型說明符提供的附加類型信息。在聲明
int* x, y, z;
的說明符*x
,y
,並且z
(那就是你可以寫任何int* x
或int *x
,而這個問題的幾個原因之一,我建議使用第二種風格的C語法的事故)。的x
,y
,和z
的int岬由類型說明符int
指定,而由聲明符*x
指定的x
指針岬(IOW,表達*x
具有類型int
)。
如果你希望所有三個對象都是指針,你有兩個選擇。您可以聲明爲指針明確:
int *x, *y, *z;
,或者你可以創建一個整型指針的typedef:
typedef int *iptr;
iptr x, y, z;
只要記住,聲明指針時,該*
是變量名稱的一部分,而不是類型。
真正的完整答案,以及*是否爲類型或變量的基本問題。 – ruralcoder 2010-07-14 14:58:24
在你的第一句話:
int x, y, z;
他們都是int
秒。
然而,在第二個:
int* x, y, z;
只有x
是指向int
。 y
和z
是普通的int
s。
如果你希望它們都被指向int
是你需要做的:
int *x, *y, *z;
這是間距'int * foo;'的一個原因是真的被誤導了。在這個問題的例子中,它看起來像3個變量都是「'int *'」類型的。我會說這個間距幾乎和'a + b * c'一樣令人反感。 – 2010-07-14 14:59:59
只有x是一個int指針。 Y和Z將會是int。 如果你想要個三分球:
int * x, * y, * z;
重要的是要知道,在C中,聲明模仿使用。 *一元運算符在C中是正確的關聯。因此,例如在int *x
中x是指向int(或int-star)的指針類型,而在int x
中,x的類型爲int。
正如其他人也提到的,在int* x, y, z;
C編譯器聲明x爲一個int星,y和z爲整數。
- 1. 聲明溢出多個行
- 2. C/C++多個條件,如果聲明
- 3. 在單個聲明中聲明多個指針
- 4. Objective-C聲明一個多維數組
- 5. 簡單C++程序上的多個未聲明的標識符
- 6. 1聲明多個變量的聲明,如聲明語句
- 7. 如果聲明有多個行
- 8. c結構聲明行爲
- 9. 多行的聲明如果
- 10. 多行註釋聲明後
- 11. 函數聲明在多行
- 12. Javadoc多行聲明語法?
- 13. 在多行中聲明NSString
- 14. javascript多行字典聲明
- 15. 在C中聲明一個looooong單行字符串#
- 16. 在單行中聲明多個變量+ Angular 2&TypeScript
- 17. 如何記錄聲明多個變量的單行?
- 18. Objective-C:聲明一個UIButton
- 19. xUnit聲明多個屬性
- 20. 多個函數聲明
- 21. 函數的多個聲明
- 22. sql多個案例聲明
- 23. Spring聲明多個bean
- 24. Jquery中的多個聲明
- 25. 多個聚合聲明
- 26. 批量重構「使用」聲明的聲明在C#在多個文件
- 27. 聲明與一個聲明多個變量中MiniZinc
- 28. 同時聲明多個外鍵或單獨聲明它們有什麼區別?
- 29. C++ typedef聲明
- 30. c winapi聲明#
編輯的問題,因爲它與Objective C無關目錄C – 2010-07-14 14:17:01
我知道這裏有一個這個問題的重複(我以前肯定讀過這個) – 2010-07-14 14:48:35