以下爲gcc
6.3版接受爲有效c
代碼c char字符數組v C案例的char *初始化
char *green = { 'a', 'b', 'c' }; // gcc error
我相信有完美理性的原因是這樣,但我想知道它是什麼。這個問題是由初始化一個字節數組的情況引起的(所以unsigned char
而不是char
),很容易寫出像{ '\x43', '\xde', '\xa0' }
而不是"\x43\xde\xa0"
,並且只要你忘記寫my_array[]
而不是*my_array
,你被編譯器捕獲。
你的'定義white'不等同於其他兩個,因爲它缺少空終止符('\ 0')在字符串的結尾。 – abelenky
@abelenky哦,是的,這是我忽略的一個好點,謝謝。 –
嘗試'char * green = {「a」,「b」,「c」};';;) – LPs