为了账号安全,请及时绑定邮箱和手机立即绑定

(C语言利用指针进行字符串的复制)为什么用指针复制字符串后,指针的值会变成空的,就是说复制完成之后,数组a与b是一样的,但是他们所对应的指针的值却变为空的,很疑惑,求解。


#include<stdio.h>

void main(){

    char a[]="1111111 1111 11111",b[40],*p1,*p2;

    p1 = a;

    p2 = b;

    for( ; *p1 != '\0' ; p2++,p1++){

        *p2 = *p1;

    }

    *p2='\0';

    printf("string a:%s\n",p1);

    printf("string a:%s\n",a);

    printf("string b:%s\n",p2);

    printf("string a:%s\n",b);

}


正在回答

1 回答

指针在移动,你循环里把他挪到最后了,后面就没有值了,都是空字符。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926317    人
  • 解答问题       20799    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

(C语言利用指针进行字符串的复制)为什么用指针复制字符串后,指针的值会变成空的,就是说复制完成之后,数组a与b是一样的,但是他们所对应的指针的值却变为空的,很疑惑,求解。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信