方式不一样,目的相同。
int a[10],*p=a;//这是定义时初始化
int b[10],*pb;
pb=b; //这是定义了指针变量pb,再给pb赋值。
a即是数组名,也是数组的首地址,也是一个指针型,这表示把p是一个指针型,*p=a表示把数组的地址付给p,p=a 这表示数组的首地址给p
问题:在定义时,*p=&a[0]也是成立的,但是在定义之后比如
int a[5] ,*p;
*p=a或者*p=&a[0]就会提示出错
是这样的,p是指针,p里面存的值应该是a的地址,*p表示对应这个地址单元里面存的值
而*p=a,就成了,*p所指向的地址单元里面存的值是a[0]的地址,就不是a[0]的值了
*p=&a[0],跟上面一样的道理,*p所指向的地址单元里面存的值是a[0]的地址