【掌握】二维数组指针定义、初始化
数组指针: 定义一个指针变量,让这个指针变量指向一维数组的元素 二维数组指针 行指针,用来指向二维数组的每一行,存放的是行的首地址 定义格式: 数据类型 (*行指针变量名)[数组第二维的长度]; 二维数组指针的初始化 int a[2][3]; int b[2][2]; float f1[4][4]; //假设我要定义一个指向数组a的一个行指针 // a = &a[0] = &a[0][0] = a[0] int (*p)[3] = a; 二维数组指针的使用 *(*(p+i)+j) //就是获取二维数组的每个元素
1 #include <stdio.h> 2 3 int main(int argc, const char * argv[]) { 4 int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; 5 6 //二维数组指针 7 //二维数组指针可以替代数组名去使用 8 int (*p)[4] = a; 9 10 for (int i=0; i<3; i++) { 11 for (int j=0; j<4; j++) { 12 //遍历数组 13 printf("%d\t",*(*(p+i)+j)); //如果是*(*(a+i)+j)可以,因为其是常量,相当于取地址但是你上面 int *p=a; 14 } //这时候下面*(*(p+i)+j)就会报错,因为此时p是一个变量,你*就是取值,定义二维数组指针应该就是解决这个问题
15 printf("\n"); 16 } 17 18 return 0; 19 }
1 3 5 7 9 11 13 15 17 19 21 23
时间: 2024-10-06 11:23:09