3个回答
展开全部
LS错误。
取决于具体使用情况。
用xx[5]是为了在最后预留一个空位,置为'\0',以便把xx作为C风格字符串进行字符串操作(例如利用标准库中的strcat、strcpy、scanf/printf的%s格式控制符、sprintf等)。这时候如果定义的是xx[4],输出的行为不可预料。而如果只是要进行储存字符,遍历数组之类的操作,完全可以只定义xx[4](定义xx[5]会浪费1个字节,不过不会有逻辑上的错误)。
所以结论是,若xx可能会被当作C字符串处理,那么应该定义xx[5],否则定义xx[4]或xx[5]都没问题。
====
[原创回答团]
取决于具体使用情况。
用xx[5]是为了在最后预留一个空位,置为'\0',以便把xx作为C风格字符串进行字符串操作(例如利用标准库中的strcat、strcpy、scanf/printf的%s格式控制符、sprintf等)。这时候如果定义的是xx[4],输出的行为不可预料。而如果只是要进行储存字符,遍历数组之类的操作,完全可以只定义xx[4](定义xx[5]会浪费1个字节,不过不会有逻辑上的错误)。
所以结论是,若xx可能会被当作C字符串处理,那么应该定义xx[5],否则定义xx[4]或xx[5]都没问题。
====
[原创回答团]
参考资料: 原创
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询