printf( asffg\0dfg );的结果为什么是asffg呢?其中的\0是什么意思?

[复制链接]
查看11 | 回复2 | 2013-3-9 09:46:32 | 显示全部楼层 |阅读模式
\0就是0,是字符串结尾,printf只打印字符串中第一个\0之前的东西。所以尽管char *string="asffg\0dfgasffg\0dfg asffg\0dfg asffg\0dfg ";可以保存""之间所有内容,但printf,strlen都只对第一个\0之前的东西感兴趣。还有你的字符串应该两边有双引号吧?下面这个例子比较清楚:char string[]="\0\0\0\0\0\0\0\0\0\0"; //注意这里是10个0字符,编译器自动再追加1个0字符。printf("[%s] length is [%d].\n", string, sizeof(string));输出是:[] length is [1...
回复

使用道具 举报

千问 | 2013-3-9 09:46:32 | 显示全部楼层
这样写,结果可以输出?...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行