有这样的定义
char a[10],*b = a;
b = "book";
printf("%s,%s",a,b);
为什么得到的会是
,book
并没有赋值到a呢?b不是保存的a首字符的地址吗?
假如把
b = "book";
改成
strcpy(a,"book");
为什么得到的又是
book,book 呢?
然后就是如果这样定义
int a,*b = a;
*b = 2;
printf("%d,%d”,a,*b);
结果是
2,2
就算把
*b = 2;
改成
a = 2;
结果还是一样的2,2
这个为什么就可以呢?数组不应该跟这个一样吗??
不太能理解他们之间的关系,我想着是既然指针b保存了a数组的首地址,那我通过修改b也能修改a吧?麻烦详细说一下可以吗,感激不尽。