-1
A
回答
7
沒有。
但有
const char* name = "hello", something = "else";
這將無法正常工作之間的差異,而
const char *name = "hello", *something = "else";
應該
2
不,沒有區別,兩個聲明都是等價的。
注意,空調風格趨於聲明指針對象是這樣的:
T *a;
而C++風格趨於聲明指針對象是這樣的:
T* a;
0
它基本上是一個口味問題。
,因爲我要明確指出的類型是指針(一個char*
),但很多人認爲,更正確的是使用const char *name
表明是指向我個人使用const char* name
(輸入char
)
1
兩者都被解析爲const char (*name) = "name";
- *
被綁定到聲明器,而不是類型說明符。
C和C++中的聲明基於表達式的類型,而不是對象。如果你有一個指向某種類型的T
,並且您要訪問所指向的價值,你的尊重指針:
x = *p;
的類型表達*p
是T
,所以指針的聲明是
T *p;
在你的情況,name
指向一個char
值開頭的字符串文字。如果我們想要去的字符值'n'
,我們就喜歡寫東西
const char start = *name; // assigns 'n' to start
因此,表達是const char
的類型,所以我們通常寫聲明
const char *name;
因爲C聲明語法如何工作,圍繞*
令牌的空白無關緊要。你可以寫成:
const char *name;
const char* name;
const char * name;
或其他一些組合。我和其他許多人更喜歡第一種形式,因爲它準確地反映了聲明語法。還有其他人更喜歡第二種形式,即使它對語法有一些誤導性的看法,因爲它強調name
的類型。
任何聲稱喜歡第三種形式的人都是馴服或瘋狂的。
相關問題
- 1. C++爲const char *爲const char * const的
- 2. 轉const const wchar_t *爲const char *
- 3. const char * const char **
- 4. 爲const char * VS字符*
- 5. 不能將'const char *'轉換爲'char * const *'
- 6. Const char * vs const wchar_t *(concatenation)
- 7. const char ** name VS char * name []
- 8. NSString爲char(不是const char)
- 9. 元帥爲const char **
- 10. 爲const char * Qt中
- 11. 如何將const char * const轉換爲const char *
- 12. 爲const char *成員
- 13. 從DWORD爲const char *
- 14. NSInteger的爲const char *
- 15. `const char *'到`char'
- 16. C++ char const char *
- 17. 如何爲const WCHAR *轉換爲const char *
- 18. 如何爲const char *轉換爲const WCHAR *
- 19. int execle(const char * path,const char * arg,...,char * const envp []);
- 20. 爲const char *爲char *在我的情況
- 21. C++複製爲const char *爲char *
- 22. 鑄造爲const char *爲char *崩潰
- 23. 爲const char * myVar的對比爲const char myVar的[]
- 24. 自動轉換爲const char []爲const char *的模板函數
- 25. 轉換型「的char **」,以「爲const char **」
- 26. D-casting char [] const char []
- 27. C++:爲const char * const的*的含義
- 28. 「警告:類型默認爲類型名稱‘詮釋’」聲明爲const char *
- 29. 不能將Const Char [21]轉換爲Char?
- 30. 在C++中將char *轉換爲const char *
你能解釋一下那些有什麼區別? – user1334858 2013-02-26 20:06:58
const char * a =「hello」,something =「else」;這將聲明一個指向char類型的指針,並將其指定爲char。你可以通過做一個「typedef char * pchar」來解決這個問題,它允許:pchar a =「hello」,something =「else」; – Dmitry 2013-02-26 20:08:52