#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);
}
初学者求大神解释怎么做的 谢谢 展开
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);
}
初学者求大神解释怎么做的 谢谢 展开
展开全部
这个程序我修改了一下,可以执行的啊
解释:就是定义一个指针,指向了字符串"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);
}
解释:就是定义一个指针,指向了字符串"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,其实就是个字符数组,字符数组的数组名就是首地址,然后就是同样的输出方式了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询