c语言,按书上的代码如下,编译的过却运行不了,为什么?运行时会弹出内存错误?
#include<stdio.h>voidmain(){chara[]="iamaboy.",b[20],*p1,*p2;inti;p1=a;p2=b;for(;p1!=...
#include<stdio.h>
void main()
{
char a[]="i am a boy.",b[20],*p1,*p2;
int i;
p1=a;p2=b;
for(;p1!='\0';p1++,p2++)
{
*p2=*p1;
}
*p2='\0';
printf("string a is:%s\n",a);
printf("string b is:");
for(i=0;b[i]!='\0';i++)
{
printf("%c",b[i]);
}
printf("\n");
} 展开
void main()
{
char a[]="i am a boy.",b[20],*p1,*p2;
int i;
p1=a;p2=b;
for(;p1!='\0';p1++,p2++)
{
*p2=*p1;
}
*p2='\0';
printf("string a is:%s\n",a);
printf("string b is:");
for(i=0;b[i]!='\0';i++)
{
printf("%c",b[i]);
}
printf("\n");
} 展开
5个回答
展开全部
for(;p1!='\0';p1++,p2++)改为
for(;*p1!='\0';p1++,p2++)
for(;*p1!='\0';p1++,p2++)
展开全部
#include<stdio.h>
void main()
{
char a[]="i am a boy.",b[20],*p1,*p2;
int i;
p1=a;p2=b;
for(;*p1!='\0';p1++,p2++)
{
*p2=*p1;
}
*p2='\0';
printf("string a is:%s\n",a);
printf("string b is:");
for(i=0;b[i]!='\0';i++)
{
printf("%c",b[i]);
}
printf("\n");
}
你第一个for循环条件应该是*p1!='\0'
void main()
{
char a[]="i am a boy.",b[20],*p1,*p2;
int i;
p1=a;p2=b;
for(;*p1!='\0';p1++,p2++)
{
*p2=*p1;
}
*p2='\0';
printf("string a is:%s\n",a);
printf("string b is:");
for(i=0;b[i]!='\0';i++)
{
printf("%c",b[i]);
}
printf("\n");
}
你第一个for循环条件应该是*p1!='\0'
展开全部
你好。你应该是输入错了。
for(;p1!='\0';p1++,p2++)应该改为
for(;*p1!='\0';p1++,p2++)
for(;p1!='\0';p1++,p2++)应该改为
for(;*p1!='\0';p1++,p2++)
展开全部
for(;p1!='\0';p1++,p2++)
改为:
for(;*p1!='\0';p1++,p2++)
不过最好用while循环
改为:
for(;*p1!='\0';p1++,p2++)
不过最好用while循环
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询