一不小心就掉大啦《数组使用注意》

来源:互联网 发布:淘宝清仓报名要求 编辑:程序博客网 时间:2024/04/20 03:27

今天程序提交答案总是不对,调试半天才发现本定义的是char s[4]={'1','2','3','4'} ;

程序运行过程中输出才发现多了一个字符  printf("%s\n"); //结果12349

思前想后觉得可能是没有字符数组结束符 ('\0');


特别注意:

定义使用字符型数组时,应多开出一个空间来存放 '\0' ,如果字符数组中没有 '\0'则
strlen(char *s),str....的函数调用时都会出现问题,因为这些函数都找不到哪里是字符数组的结束符。

例如:
s[4]="1234";  同时s数组紧跟其后的二个字节的有数据(假如为 '5' '\0')

在调用函数的时候传递的是数组的首地址使用 puts(s); 结果就是 :12345 




                                                                    小弟才疏学浅,如有理解有误还望提点,谢谢

                                                                                               2014-3-22


2 0
原创粉丝点击