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)指针数组指向二维数组时,因为它本身是个指向数组的指针,所以它的内层每加一,就相当于下一个数组

相关内容

热门资讯

山水皆有情!丽江两山一江的千年... 去过丽江、走过虎跳峡的人,大概率都听过哈巴雪山和金沙江的传说。很多人站在峡谷之下,望着奔腾不息的金沙...
活力中国调研行丨“殷”你而来 ... 9月12日,游客在殷墟博物馆“甲骨文展厅”内参观。位于河南省安阳市的殷墟博物馆新馆是首个全景式展现商...
浦江之夜赴美好相逢,第37届上... 9月12日晚,黄浦江畔灯火璀璨,第37届上海旅游节大巡游在外滩中山东一路上演。不少观众早早便来到外滩...
美丽中国丨秋韵紫鹊界 梯田入画... 这是9月11日拍摄的紫鹊界梯田(无人机照片)。 金秋九月,湖南省娄底市新化县紫鹊界梯田稻谷渐次成熟。...
中国之巅奏响《共同的节日》,千... 千吨阻尼器,“迎世赛、游上海旅游节”。9月13日,由上海市文化和旅游局指导推出上海旅游·会客│巅峰之...