📜  数组 pointres-> (1)

📅  最后修改于: 2023-12-03 15:26:10.383000             🧑  作者: Mango

数组指针

数组指针是指向数组的指针,它可以指向数组中的一个元素,也可以指向整个数组。在C语言中,数组名就是指向数组第一个元素的指针,因此,我们可以使用指针来操作数组。

声明数组指针
int arr[5] = {1, 2, 3, 4, 5};
int *p;

// 指向数组的第一个元素
p = arr;
操作数组指针

我们可以通过指针来访问数组中的元素,也可以通过指针来修改数组中的元素。

// 访问数组中的元素
int a = *(p+2);   // 等价于 a = arr[2];

// 修改数组中的元素
*(p+2) = 100;     // 等价于 arr[2] = 100;
指向二维数组的指针

我们也可以使用指针来指向二维数组。一个指向二维数组的指针其实就是一个指向数组的指针,它可以指向二维数组中的任意一个元素。

int a[2][3] = {{1,2,3},{4,5,6}};
int (*p)[3];  // p是指向一个含3个元素的一维数组的指针

// 指向二维数组的第一行
p = a;

// 访问二维数组中的元素
int x = *(*p+2);  // 等价于 x = a[0][2];

// 修改二维数组中的元素
*(*p+2) = 100;    // 等价于 a[0][2] = 100;
总结

使用数组指针可以方便地操作数组,可以访问和修改数组中的元素,也可以指向二维数组中的元素进行操作。熟练掌握数组指针的使用可以提高程序的效率,减少代码的复杂度。