楼主:
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)