1.指向指针的指针:多级指针
这两条语句一样吗
所以这两条语句是一样的。
可以发现*(p1+0)p[0]等价。
总结
// ( * )p == ( * )(p+0) == p[0]==*(p+i)=p[i]
2.指向数组的指针:数组指针
int * arr【5】:这个本质是一个数组,只不过每一个元素存储的是地址而已。
int (*px)【5】:这个本质是一个指针。
赋值: px=(int ( * )[5])10;
int (*px)[5],我们可以这样理解 定义了一个带( * )的变量px。
那么这里的变量px与( * )px表示的值是一样的吗?
我们发现它们打印的值是一样的,说明px与( * )px里面存储的值是一样的。
虽然他们存储的值是一样的,但是它们两个的类型是不一样的。
px可以看作是一个二级指针,( * )px可以看作是一个一级指针。