沧海雨季 发表于 2017-8-24 20:47:39

一道指针问题

题目是将a数组copy到数组b。
我用了两种方法(子函数中被注释的是另一种方法)
但是运行结果都是这样。
不知道为什么,请大家帮忙看看。谢谢!
#include <stdio.h>

void copy(char from[],char to[]);
int main()
{
        char a[]="I like English very much!";
        char b[]="I like C very much too!";

        printf("The a string is: ");                                //输出原来的a字符串;
        printf("%s\n",a);

        printf("The b string is: ");                                //输出原来的b字符串;
        printf("%s\n",b);

        printf("\n\n");
       
        copy(a,b);
       
        printf("The a string is: %s\n",a);
        printf("The b string is: %s\n",b);                        //输出更改后的a,b字符串;

        return 0;
}

void copy(char from[],char to[])
{
        int i=0;
        /*
        char *p1,*p2;
        p1 = from;
        p2 = to;
        for(;*p1!='\0';p1++,p2++)
        {
                *p2=*p1;
        }
        *p2='\0';
        */
        while(from!='\0')
        {
                to=from;
                i++;
        }

        to='\0';
}

ba21 发表于 2017-8-24 20:59:19

一个是指针形式索引,一个是数组索引。
指针和数组在很多情况下都可以互用。

沧海雨季 发表于 2017-8-24 21:01:41

ba21 发表于 2017-8-24 20:59
一个是指针形式索引,一个是数组索引。
指针和数组在很多情况下都可以互用。

额。。但是这两个运行结果都是错的啊。。这是怎么回事

ba21 发表于 2017-8-24 21:08:34

沧海雨季 发表于 2017-8-24 21:01
额。。但是这两个运行结果都是错的啊。。这是怎么回事

两个数组长度不一样。肯定出错。
      char a[]="I like English very much!";
      char b[]="I like C very much too!!!";

沧海雨季 发表于 2017-8-24 21:12:28

ba21 发表于 2017-8-24 21:08
两个数组长度不一样。肯定出错。

哦哦谢谢啦~
页: [1]
查看完整版本: 一道指针问题