指针和数组的类型匹配问题

int *p;int a[5]; p = a       //类型匹配

int *p;int a[5];p = &a     //类型不匹配

a 和 &a[0]都是数组第一个元素的首地址,类型都是int *;&a是数组的首地址,是一个数组指针,类型是int (*)[5]。

指针类型如何决定了指针如何参与运算?

       int *p ,p+1实际上是地址+sizeof(int);

       char *p,p+1是地址+sizeof(char);

这样子做是为了让指针指向下一个元素(不希望错位)

猜你喜欢

转载自blog.csdn.net/weixin_40405692/article/details/87728846
今日推荐