LB_BW 发表于 2013-2-18 11:30:16

问一下关于C指针问题?

以下程序为什么第3个printf();输出的结果是乱麻。
#include <stdio.h>
void main()
{
    char form[]="I am a teacher.";
    char to[]="your are a student.";
   char *a, *b;
   a=form;
   b=to;
printf("string a = %s\nstring b= %s\n", a, b);
printf("copy string a to string b:\n");
       
while((*b++ = *a++) != '\0');
printf("\nstring a=%s\nstring b=%s\n", a, b);/*输出的结果不对。 */
}

ziruo2002ab 发表于 2013-2-18 11:38:46

a,b指针已经不知道++到哪里去了,当然输出不对了

lcofjp 发表于 2013-2-18 11:41:32

ziruo2002ab 发表于 2013-2-18 11:38 static/image/common/back.gif
a,b指针已经不知道++到哪里去了,当然输出不对了

正解,指针已经到字符串的末尾了

zpxa001 发表于 2013-2-18 11:53:30

改成这样:

void main()
{
char form[]="I am a teacher.";
char to[]="your are a student.";
char *a, *b;
a=form;
b=to;
printf("string a = %s\nstring b= %s\n", a, b);
printf("copy string a to string b:\n");
      
while((*b++ = *a++) != '\0');
a=form;
b=to;
printf("\nstring a=%s\nstring b=%s\n", a, b);/*输出的结果不对。 */
}

LB_BW 发表于 2013-2-18 18:43:40

多谢了。{:handshake:}
页: [1]
查看完整版本: 问一下关于C指针问题?