鱼C论坛

 找回密码
 立即注册
查看: 1266|回复: 1

[已解决]字符型指针变量做实参

[复制链接]
发表于 2020-2-23 13:19:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

程序1
#include<stdio.h>
int main()
{
        void copy_string(char from[],char to[]);
//        char a[]="I am a boy.",b[20]="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[i]!='\0';i++)
                to[i]=from[i];
                to[i]='\0';
}


程序2:
#include<stdio.h>
int main()
{
        void copy_string(char from[],char to[]);
        char a[]="I am a boy.",b[20]="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[i]!='\0';i++)
                to[i]=from[i];
                to[i]='\0';
}
最佳答案
2020-2-23 13:40:24
   char a[]="I am a boy.",b[20]="I love china.";  // 变量
        char *p1="I am a boy.",*p2="I love china.";  // 常量
我觉得课程中在讲指针的地方说得很清楚了。
指向常量的指针:
-可以修改为指向不同的常量
-可以修改为指向不同的变量
-可以通过解引用来读到指针指向的数据
-不可以通过解引用修改指针指向的数据
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-23 13:40:24 | 显示全部楼层    本楼为最佳答案   
   char a[]="I am a boy.",b[20]="I love china.";  // 变量
        char *p1="I am a boy.",*p2="I love china.";  // 常量
我觉得课程中在讲指针的地方说得很清楚了。
指向常量的指针:
-可以修改为指向不同的常量
-可以修改为指向不同的变量
-可以通过解引用来读到指针指向的数据
-不可以通过解引用修改指针指向的数据
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 01:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表