只是用C++來玩一下。我真正想要做的是能夠使用爲數組或指針參數定義的默認值設置函數。爲了簡單起見,我們只需使用一個數組。像這樣:數組參數的默認值
void experimentA(char a[3] = {'a', 'b', 'c'});
編譯器(LLVM GCC 4.2 GNU99)抱怨 「預期表達」。這很不靈敏,但我被同事告知,這是因爲我試圖分配的「值」是靜態分配的,而我試圖將其分配給(a[3]
)的變量是自動分配的。
但我不能完全肯定,如果是這樣的話,因爲我能做到這一點:
void experimentB(char a[3] = "abc");
,編譯器只是警告我說,字符串文本爲char *轉換已過時。
我不明白「abc」如何與{'a','b','c'}有根本的不同,以便引起這種差異。任何有識之士都非常感謝!
記住 「ABC」 是真{ 'A', 'B', 'C', '\ 0'}這將適合一個大小爲4的數組。 –
@Doug:當使用字符串字面值初始化一個char數組時,不必爲空終止符設置空格。如果程序員指定了明確的長度,他應該知道他在做什麼。 –