#include<stdio.h> main() {int i; char *m="abc",k[4]; k[0]='A';k[1]='B';k[2]=

#include<stdio.h>main(){inti;char*m="abc",k[4];k[0]='A';k[1]='B';k[2]='C';k[3]='\0';f... #include<stdio.h>
main()
{int i;
char *m="abc",k[4];
k[0]='A';k[1]='B';k[2]='C';k[3]='\0';
for(i=0;i<3;i++) printf("%s,%s,",m+i,k+i);
}
初学者求大神解释怎么做的 谢谢
展开
 我来答
梦中梦2012
2012-06-12 · TA获得超过5337个赞
知道小有建树答主
回答量:288
采纳率:75%
帮助的人:342万
展开全部
这个程序我修改了一下,可以执行的啊
解释:就是定义一个指针,指向了字符串"abc"的首地址,后面的加1,就是为了使指针向后移动一位;k[4]就是字符串数组了,一样的处理
我给你修改了一下,便于看清楚输出结果了,你试一下吧

【程序实例】
#include<stdio.h>
main()
{int i;
char *m="abc",k[4];
k[0]='A';k[1]='B';k[2]='C';k[3]='\0';
for(i=0;i<3;i++)
printf("%s,%s\n",m+i,k+i);
}
追问
你好   我想问的是运行结果  想知道怎么运行出来的   知道答案只是不知道怎么出来的
追答
先看第一个%s,一开始m指向"abc"的首地址,在for循环下,先是m+0=m,指向首地址,输出abc;然后指针加1,就是m+1了,指向了第二个字母的地址,输出bc,同理,最后输出c。。。
第二个%s,其实就是个字符数组,字符数组的数组名就是首地址,然后就是同样的输出方式了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式