lzting 发表于 2021-5-1 17:49:36

关于指针问题


#include <stdio.h>
void main()
{
    char a[]="I LOVE FISHC !",b;
        char *str1,*str2;

        str1 = a;
        str2 = b;

        for(;*str1!='\0';str1++,str2++)
        {
           *str2 = *str1;
        }
        *str2 = '\0';

        printf("%s",b);
}

这里为什么改变str2的地址会对数组b产生影响?

人造人 发表于 2021-5-1 17:52:14

第9行让str2指向了数组b

Afragrant 发表于 2021-5-1 18:20:11

这个不是改变了str2的地址,str2指向了数组b,这里*str和b[]是一个意思,所以改变的是数组b的值。

993897487 发表于 2021-5-4 04:01:37

*在赋值号的左边表示写在赋值号的右边表示读第9行你把b的地址给了str2,13行 *str2 = *str1把右值读出来在写给左值。
页: [1]
查看完整版本: 关于指针问题