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

相关内容

热门资讯

从山海古城到青春乐场,日照的滨... 中新网日照11月19日电(记者 左宇坤)深秋时节,山东日照莒县浮来山上的“天下银杏第一树”迎来一年中...
重构温泉体验:项目实践与发展路... 传统温泉同质化、体验形式单一的问题日益凸显,难以满足当下游客对个性化、沉浸式、多功能消费的需求。随着...
原创 非... 面对急需帮助的人,我们会先选择帮助,还是先拍照呢?如果这是发生在10年前,肯定不用多想,大家一定会第...
原创 非... 茶馓又名油面、馓子,是江苏知名传统点心,其中以淮安茶馓最富胜名。 01 追溯历史 淮安茶馓起源于战国...