当前位置:  技术问答>linux和unix

bzero函数

    来源: 互联网  发布时间:2017-01-01

    本文导语:  #include  #include  int main() { char s[]="Hello World!"; printf("%sn",s); bzero(s,2); printf("%sn",s); return 0; } 按理说,只是把字符串的前两个字符清零,后面的字符还是应该有, 但是bzero以后再打印出来,就是一行空白,怎么回...

#include 
#include 
int main()
{
char s[]="Hello World!";
printf("%sn",s);
bzero(s,2);
printf("%sn",s);
return 0;
}

按理说,只是把字符串的前两个字符清零,后面的字符还是应该有,
但是bzero以后再打印出来,就是一行空白,怎么回事呢?

|
printf遇到,也就是0就会停止,所以。遇到,printf就结束了。

|
printf("%sn",s);

printf("%sn",s + 2);

对比分析下

|
一个for 循环, 打印 %0x

|
C风格字符串,遇到''就结束了

|
printf("%sn",s);
打印字符串,遇到''就结束了。
bzero(s,2);已经把前面2个元素清0.
用%s去打印字符串s[]里面的元素。第一二个元素都是0
遇到第一个0的时候打印就已经结束了,所以输出是空白

|
 一楼正解

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3