C程序
# include <stdio.h>void main ()
{
char a[] = "Fishc.com is a good web site!", b, *p1, *p2;
int i;
p1 = a;
p2 = b;
for (; *p1 != '\0'; p1++, p2++)
{
*p2 = *p1;
}
*p2 = '\0';
printf ("%s\n",p2);
}
结果运行不出来,为什么?
# include <stdio.h>
void main ()
{
char a[] = "Fishc.com is a good web site!", b, *p1, *p2;
int i;
p1 = a;
p2 = b;
for (; *p1 != '\0'; p1++, p2++)
{
*p2 = *p1;
}
*p2 = '\0';
p2 = b;
printf ("%s\n",p2);
}
改成这样就好了,为什么要加 p2 = b; 求教!!! 你得用一个指针指向待复制的字符串吧 qiuyouzhi 发表于 2020-5-4 21:09
你得用一个指针指向待复制的字符串吧
for语句之前已经有了p2 = b;了 lengfeng49 发表于 2020-5-4 21:10
for语句之前已经有了p2 = b;了
哦,你说最后那个啊
你得把指针放到最前面,不然指针指向的是最后一个,
就不会打印整个字符串了 本帖最后由 liuzhengyuan 于 2020-5-4 21:15 编辑
lengfeng49 发表于 2020-5-4 21:10
for语句之前已经有了p2 = b;了
因为在for循环中 p2已经被改变了 liuzhengyuan 发表于 2020-5-4 21:14
因为在for循环中 p2已经被改变了
明白了,十分感谢! qiuyouzhi 发表于 2020-5-4 21:14
哦,你说最后那个啊
你得把指针放到最前面,不然指针指向的是最后一个,
就不会打印整个字符串了
明白了,十分感谢! lengfeng49 发表于 2020-5-4 21:35
明白了,十分感谢!
那就设个最佳答案吧~
页:
[1]