C语言:数组指针
admin
2024-02-14 06:20:51

数组指针

定义:指的是数组名的指针,即数组首元素地址的指针。即是指向数组的指针。 数组指针也叫行指针。
例:int (*p)[10]; p即为指向数组的指针,又称数组指针。

性质:数组指针用于指向一个数组,其本质为指针;

()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长,也就是说执行p+1时,p要跨过n个整型数据的长度。

举个栗子:

    int arr[10]={1,2,3,4,5,6,7,8,9,10};int (*p)[10]=&arr;//数组的地址要存起来//上面的p就是数组指针int i=0;for(i=0;i<10;i++){printf("%d ",*(*p+i));//第一种方法打印数组}printf("\n");for(i=0;i<10;i++){printf("%d ",(*p)[i]);//第二种方法打印数组}printf("\n");

数组指针一般是用在二维数组中,例如:

//参数是指针的形式
void print(int(*p)[5],int x,int y)
{int i=0;for(i=0;iint j=0;for(j=0;jprintf("%d ",*(*(p+i)+j));//*(p+i)=p[i],所以*(*(p+i)+j)=p[i][j]}printf("\n");}
}int a[3][5]={{1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7}};
print(a,3,5);
//1 2 3 4 5
//2 3 4 5 6
//3 4 5 6 7
//此处将每一行看成一个元素,利用数组指针将二维数组看成一维数组int [5]

一维数组指针和二维数组指针相关区别

一、指向一维数组的指针变量设一维数组为a[n]

定义方法:* 指针变量名即 * P
这个p一般指向的一维数组的首地址,即p=a,或者p=&a[0];p,a,&a[0]均指向同一单元,它们是数组a的首地址,也是0号元素a[0]的首地址。p+1,a+1,&a[1]均指向1号元素a[1]。类推可知p+i,a+i,&a[i]。

二、指向二维数组的指针变量设二维数组为a[m][n]

定义方法:(*指针变量名)[长度]即(*P)[n]
“长度”表示二维数组分解为多个一维数组时,一维数组的长度,也就是二维数组的列数。

关于指针数组,我们大致遵循以下规则:

(1)访问数组元素,要么用下标法 [],要么用指针*.

(2)一维数组用一个下标,二维数组用两个下标

(3)指针指向数组元素时,指针表示数组元素的地址,用 * 对这个地址运算就求出了这个地址(即数组元素)的值

(4)指针数组指向二维数组时,因为它本身是个指向数组的指针,所以它的内层每加一,就相当于下一个数组

相关内容

热门资讯

同样卖奶茶,为何古茗赚了15亿... 出品/联商专栏 撰文/老刀 编辑/蔡建桢 今年上半年,蜜雪、古茗、霸王茶姬、茶百道、沪上阿姨全部盈利...
现烤散装走俏、新口味亮相、健康... 中秋佳节临近,成都月饼市场已全面开启“上新季”。记者连日来走访成都多家商超看到,月饼专区占据卖场核心...
散装月饼靠性价比当上“人气王” 华润超市货架上的散装月饼。 深圳报业集团记者 欧阳莹 摄 深圳晚报讯 (深圳报业集团记者 欧阳莹) ...
原创 9... 九月初秋,燥气渐起,容易咽喉干痒、口鼻缺水、干咳烦闷。多喝清润汤水,滋养肺阴,补足身体津液,不寒不腻...
原创 生... 山药是秋季深藏不露的养生食材,也是为数不多 生用补肾、熟用健脾 的平价好物。生山药滋阴补肾、固护肾精...