指针数组与数组指针简区

区分:首先明白'[ ]'比'( )'优先与p结合,所以数组指针为 int (*p)[10]形式,用于存放数组的地址;指针数组为 int* p[10]形式 ,用于存放指针;

数组的指针:int (*p) [10] :p指向有10个元素的int类型的数组,数组指针,本质上是指针,指向数组的指针;(int (*p) [10]= &arr; 对数组名取地址代表整个数组的地址,应该将其放到数组指针中)

指针的数组:int* p[10]; 本质上是数组,存放了指针的数组;

数组指针与整型指针类比:

int a = 10; ---------- int arr[10];

int* p = &a;将a的地址放在整型指针中 -------- int(*p) [10] = &arr;将数组地址放在数组指针中;

#include<stdio.h>
int main()
{
	int arr[10] = {0};
	printf("%p\n", arr);//数组名为数组首元素地址

	printf("%p\n", &arr);//整个数组的地址,表示出来=首元素地址

	printf("%p\n", arr+1);//+1相当于走一个数组元素

	printf("%p\n", &arr+1);//+1相当于走一整个数组
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值