王盛帅 发表于 2020-2-23 13:19:38

字符型指针变量做实参

进行字符串的复制,程序1无法运行,改一下第2,3行变为程序2即可运行,不明觉厉。

程序1
#include<stdio.h>
int main()
{
        void copy_string(char from[],char to[]);
//        char a[]="I am a boy.",b="I love china.";
        char *p1="I am a boy.",*p2="I love china.";
        printf("The array a:%s\n",p1);
        printf("The array b:%s\n",p2);
        copy_string(p1,p2);
        printf("After the copy\n");
        printf("The array a:%s\n",p1);
        printf("The array b:%s\n",p2);
        return 0;
}
void copy_string(char from[],char to[])
{
        int i=0;
        for(;from!='\0';i++)
                to=from;
                to='\0';
}


程序2:
#include<stdio.h>
int main()
{
        void copy_string(char from[],char to[]);
        char a[]="I am a boy.",b="I love china.";
        char *p1=a,*p2=b;
        printf("The array a:%s\n",p1);
        printf("The array b:%s\n",p2);
        copy_string(p1,p2);
        printf("After the copy\n");
        printf("The array a:%s\n",p1);
        printf("The array b:%s\n",p2);
        return 0;
}
void copy_string(char from[],char to[])
{
        int i=0;
        for(;from!='\0';i++)
                to=from;
                to='\0';
}

ba21 发表于 2020-2-23 13:40:24

   char a[]="I am a boy.",b="I love china.";// 变量
      char *p1="I am a boy.",*p2="I love china.";// 常量
我觉得课程中在讲指针的地方说得很清楚了。
指向常量的指针:
-可以修改为指向不同的常量
-可以修改为指向不同的变量
-可以通过解引用来读到指针指向的数据
-不可以通过解引用修改指针指向的数据
页: [1]
查看完整版本: 字符型指针变量做实参