急求此C语言题的解题方法!多谢!

[复制链接]
查看11 | 回复1 | 2010-3-14 17:23:23 | 显示全部楼层 |阅读模式
char sa[7] = "ABC\0TV";这一句中的"\0"是字符窜中的结束标记,输入字符串的时候,系统自动在末尾添加一个"\0"作为字符串结束标记,所以在内存中存储的数据是:ABC\0TV\0printf("%s", sa);这句从A开始输出,遇到第一个 \0 结束输出 所以输出 ABCprintf("%s", sa+1);这句从B开始输出,遇到第一个 \0 结束输出 所以输出 BCprintf("%s", sa+4);这句从T开始输出,输出到最后,所以输出 TV结果就是ABCBCTV
回复

使用道具 举报

千问 | 2010-3-14 17:23:23 | 显示全部楼层
这个很简单嘛,首先我们要知道'\0'在c语言的字符串中表示字符串的结尾 ,然后输出printf("%s", sa);就是输出sa指向的sa[0]后的字符串直到遇到字符串结束。若果我们不加\0的话,系统会自动在字符串的结尾做\0的标志。所以第一次输出ABC。第二次输出sa[1]以后的字符串,输出BC,第三次输出sa[4]以后的字符串,就输出TV
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行