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

本文探讨了在C语言中使用字符数组时遇到的一个常见问题——忘记在数组末尾添加空字符('')。作者通过一个具体例子展示了如果没有正确终止字符串,可能会导致函数如puts()输出错误结果的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天程序提交答案总是不对,调试半天才发现本定义的是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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

什码情况

你的鼓励就是我最大的动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值