c语言指针问题,a赋值给b后a的值没有了

2019-07-20 22:37发布

为什么指针a的值没有了?请各位帮忙解决一下

第二张图数组b的值后面为什么会有一个@B




#include "stdio.h"

int main()

{
        
        void copy(char *a,char *b);
        char *a="bai cha qing huan wu bie shi";
        char b[]="wo zai deng feng ye deng ni";

        printf("a=%s b=%s ",a,b);
        printf("b copy a ");

        copy(a,b);

        printf("a=%s b=%s ",a,b);
        printf("%c ",a[5]);

}

void copy(char *c,char *d)
{
        while(*c!='')
        {
             *d++=*c++;
        }
        *d='';
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
brucewoo
1楼-- · 2019-07-21 03:29
 精彩回答 2  元偷偷看……
qq1723000545
2楼-- · 2019-07-21 09:27
 精彩回答 2  元偷偷看……
brucewoo
3楼-- · 2019-07-21 13:56
本帖最后由 brucewoo 于 2019-7-14 10:49 编辑
qq1723000545 发表于 2019-7-14 09:51
那可能是我软件问题吧

我也搞不懂你这个情况是什么回事,按道理是没问题的,函数的参数是指针,而这个指针是引用传递,函数里的操作应该不会影响到原始指针所存储的地址值。
我没有装VC++,你试试在调用函数的前后分别把 a所存储的地址值printf出来看看有没有变。

一周热门 更多>