2016-03-07 209 views
0

按照標題。我看到有些人宣稱指針爲char* s,其他人則宣稱它爲char *s。我還看到一些人在做,比如s = (char*) malloc(5),而不是做*s = malloc(5)。這是否也有區別?道歉,如果這個問題重複,我理解指針的概念,但很難理解用於表示指針在C中的語法。char * s和char * s有什麼區別?

+7

沒有區別的。 – haccks

+1

你不需要爲'malloc'轉換' –

+2

'* s = malloc(5)''會出錯,除非's'是'char **'。 'malloc()'不應該被拋出,因爲它不需要。 –

回答

5

沒有區別。

A排序慣例已經成長起來:民間喜歡把char*作爲是類型s(這是當然的,地,指針);這可以使源代碼更具可讀性。

但是真的是char就是這個類型,而*s這個變量。您可以通過編寫

char* s, t;

s是一個指針看到這一點,但t是一個普通的老char。如果你想既st爲指針,你必須寫

char *s, *t;

或混淆

char* s, *t;

+1

很難相信,這不是一個多重複制。 –

+0

我喜歡將'char *'作爲類型,'s'作爲變量名稱,+1:D – Netwave

+0

@MartinJames:回答(i)可能是重複的和(ii)基於邊界的意見爲基礎是一個危險的問題。 – Bathsheba

相關問題