关于指针问题
#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产生影响? 第9行让str2指向了数组b
这个不是改变了str2的地址,str2指向了数组b,这里*str和b[]是一个意思,所以改变的是数组b的值。 *在赋值号的左边表示写在赋值号的右边表示读第9行你把b的地址给了str2,13行 *str2 = *str1把右值读出来在写给左值。
页:
[1]