[拾零]C语言的数组指针

为了强化记忆,从而写笔记保留。

数组指针,顾名思义,是在说一个指针,这个指针是指向数组的。

区别于指针数组

int* p[5] = NULL;  //指针数组   基类型 int*
int (*p)[5] = NULL;  //数组指针   基类型 int[5]

数组指针实例

int main()
{
	int arr[16] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
	int (*px)[2];  //定义一个宽度是2的数组指针
	px = (int (*)[2])arr;  //px是数组指针
	printf("%d
", *(*px));  //打印结果是1,因为*px是数组,*(*px)是数组首元素
	printf("%d
", *(*(px+0)+0));
	printf("%d
", *(*(px+1)+1));  //打印结果是4,px+1移动8个字节,也就是2个int,即3的位置
	printf("%d
", px[1][1]);  //打印结果是4
	return 0;
}

小结

 *() 与 [ ] 是可以互换的,也就是说*(*(p+1)+2)相当于p[1][2]

练习

使用数组指针遍历一个一维数组。

原文地址:https://www.cnblogs.com/flatcc/p/7487706.html