求解析该C语言程序的运行结果及对每个语句进行讲解?

#include<stdio.h>char*pc="ABCDEF";intmain(){char*chp;for(chp=pc;*chp;chp++,pc++,chp++... #include<stdio.h>
char *pc="ABCDEF";
int main( )
{
char *chp;
for(chp=pc;*chp;chp++,pc++,chp++)
printf("%s\n",chp);

}

主要讲解for循环内的内容,非常感谢!
展开
 我来答
帐号已注销
2019-11-23 · TA获得超过318个赞
知道小有建树答主
回答量:345
采纳率:90%
帮助的人:88.4万
展开全部

运行结果:

ABCDEF

CDEF

EF


for (

chp = pc; // 将pc的值(即串"ABCDEF"的首地址)赋值给chp,此时pc指向串"ABCDEF"的第一个字符,即‘A’,所以pc的值也是‘A’的地址。

*chp; // 当chp为‘\0’时退出for循环。串"ABCDEF"最后一个字符为'\0',即当chp指向该串最后一个字符时,结束for循环。

chp++, pc++, chp++ // pc自增一次同时,chp自增两次(即chp+=2)。pc自增不影响结果。chp+=2,相当于按一个字符间隔输出后续字符。

)

更多追问追答
追问
pc=A,chp=A, 输出 ABCDEF;
pc=B,chp=C, 输出 CDEF;
pc=C,chp=E, 输出 EF。
可以这样理解吗?
追答

是这样理解的。

其实,如果确定不了,可以把程序编译执行,同时学习使用调试器观察内存变化,就能有更深的理解了。

专走是5485
2019-11-23 · 贡献了超过146个回答
知道答主
回答量:146
采纳率:27%
帮助的人:11.4万
展开全部
如果要这样操作的话,就会有一些事情出来,这样操作流程是有一些故障的,也是有一些不科学的,如果要是这样操作的话,可能会出现一些故障。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式