C语言 数组指针详解及示例代码
什么是指针
指针是一种变量,它存储了一个地址。本质上,指针就是一个整数,但是它的类型与所指向对象的类型相同。在C语言中,我们可以通过指针来访问内存中的数据,或者在函数间传递指针来避免在函数之间进行大量的数据复制。
什么是数组指针
数组指针是指向数组的指针。与数组名类似,数组指针也可以被认为是第一个元素的地址。因此,当我们对数组指针进行递增和递减时,指针指向的地址也会随之改变,但是指针的类型会保持不变。
数组指针的声明和初始化
数组指针的声明和初始化可以与其他指针类型一样。如下所示:
int *arrPtr;
int arr[3];
arrPtr = arr; // 这里将指针指向数组的首地址
当我们将指针指向一个数组时,我们可以使用 *arrPtr
来访问数组的第一个元素,*(arrPtr + 1)
访问第二个元素,以此类推。
示例1:使用数组指针作为函数参数
下面这个例子演示了如何使用数组指针作为函数参数。在这个例子中,我们传递了一个数组和数组的长度,通过对指针的递增和解引用操作访问了数组中的元素,并输出了结果。
#include <stdio.h>
void printArray(int *arr, int len) {
for(int i=0;i<len;i++){
printf("%d ",*(arr+i));
}
printf("\n");
}
int main(){
int arr[]={1,2,3,4,5};
int len = sizeof(arr)/sizeof(arr[0]);
printf("the length of array is %d\n",len);
printArray(arr,len);
return 0;
}
输出结果为:
the length of array is 5
1 2 3 4 5
示例2:指向二维数组的指针
下面这个例子演示了如何声明一个指向二维数组的指针。在这个例子中,我们声明了一个数组指针 arrPtr
,并将其初始化为指向二维数组 arr
的首地址。我们也可以通过 arrPtr[i][j]
访问指向的二维数组中的元素。
#include <stdio.h>
int main(){
int arr[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int (*arrPtr)[4];
arrPtr = arr;
for(int i=0;i<3;i++){
for(int j=0;j<4;j++){
printf("%d ",arrPtr[i][j]);
}
printf("\n");
}
return 0;
}
输出结果为:
1 2 3 4
5 6 7 8
9 10 11 12
总结
本文介绍了C语言中数组指针的基本概念、声明和初始化方式,并通过两个示例代码演示如何使用数组指针作为函数参数以及访问指向二维数组的指针中的元素。掌握数组指针的相关知识,可以使代码更加简洁而高效。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言 数组指针详解及示例代码 - Python技术站