作者:
TimmyDD (道元博士)
2016-10-02 22:26:38各位大大你們好,最近在寫一些面試考古題,
自己觀念不太好,寫到其中一題,腦袋如同醬糊一般黏死了。
在此求救各位QAQ
以下有七種char宣告方式,要選出正確的
(1) char *name = "XYZ WW1B";
(2) char *name[10] = "XYZ WW1B";
(3) char name[7] = "XYZ WW1B";
(4) char *name[8] = "XYZ WW1B";
(5) char name[10] = "XYZ WW1B";
(6) char name = "XYZ WW1B";
(7) char name[10] = {"XYZ WW1B"};
小弟只覺得(5),(7)是對的,其他錯的又說不清楚理由,
還懇請各位相助,幫忙釐清觀念,謝謝!
作者:
uranusjr (â†é€™äººæ˜¯è¶…級笨蛋)
2016-10-03 09:30:00(7) 應該是 compond literal 自動展開的效果, 但標準沒有規定這樣用的效果, 應該是 implementation depedent的 undefined behaviour, 不算正確 (即使結果沒問題)以 coding style 來看, 正確的應該只有 5; 以標準來看 1也合法, 但容易出錯 (見置底 13 戒之 4)