/*
数组指针
定义一个指针变量,让这个指针变量指向一位数组的元素
二维数组指针
行指针,用来指向二维数组的每一行,存放行的首地址
定义格式:数据类型 (*行指针变量名)
对于二维数组来说他的第一维代表行的首地址,如arr[3][]: arr[0]代表arr[3][]的第一行的首地址;
arr[1]代表arr[3][]的第二行的首地址;
arr[3]代表arr[3][]的第三行的首地址;
指针数组:存放指针的数组,
int * p[2] = {a[0],a[1]};
二维数组指针,指向单个变量
int(*p)[4] = arr;
*/
#include"stdio.h"
int main(void)
{
int i,j;
int arr[2][4] = {1,2,3,4,5,6,7,8};
//定义二维数组指针
//二位数组指针可以替代数组名来使用
int(*p)[4] = arr;
int *pt[2] = { arr[0], arr[1]};
for( i=0; i<2; i++)
{
for(j=0; j<4; j++)
printf("%4d",*(*( p+i )+j));
}
printf("\n");
for( i=0; i<2; i++)
{
for(j=0; j<4; j++)
printf("%4d",*(pt[i]+j));
}
printf("\n");
}
数组指针
定义一个指针变量,让这个指针变量指向一位数组的元素
二维数组指针
行指针,用来指向二维数组的每一行,存放行的首地址
定义格式:数据类型 (*行指针变量名)
对于二维数组来说他的第一维代表行的首地址,如arr[3][]: arr[0]代表arr[3][]的第一行的首地址;
arr[1]代表arr[3][]的第二行的首地址;
arr[3]代表arr[3][]的第三行的首地址;
指针数组:存放指针的数组,
int * p[2] = {a[0],a[1]};
二维数组指针,指向单个变量
int(*p)[4] = arr;
*/
#include"stdio.h"
int main(void)
{
int i,j;
int arr[2][4] = {1,2,3,4,5,6,7,8};
//定义二维数组指针
//二位数组指针可以替代数组名来使用
int(*p)[4] = arr;
int *pt[2] = { arr[0], arr[1]};
for( i=0; i<2; i++)
{
for(j=0; j<4; j++)
printf("%4d",*(*( p+i )+j));
}
printf("\n");
for( i=0; i<2; i++)
{
for(j=0; j<4; j++)
printf("%4d",*(pt[i]+j));
}
printf("\n");
}