指针数组和数组指针的区别

指针数组

	指针数组:int *a[4]
	顾名思义这是一个数组,数组的元素全部都为指针
	如:

int *a[4]={“thank”,“you”,“very”,“much”};

	数组中的每个元素都是一个指针,每个指针都存放着一个字符串的首地址;

即 a[1]==“you”

	这就相当与定义char *p1 = “thank”,char *p2 = “you”,char *p3 = “very”, 
	char *p4 = “much”,这是四个指针,每个指针存放一个字符串首地址,
	然后用arr[4]这个数组分别存放这四个指针,就形成了指针数组。

数组指针

	数组指针:int  (*a)[4];
	数组指针是一个指向数组的指针;
	相当于一个二级指针的行数组;

int b[2][5]={1,2,3,4,5,6,7,8,9,0};
int (*a)[5]=b; //数组指针的长度应与二级指针长度相同,否则编译器会报错
此时a的增量为5;
即 * ( *(a+1))==6 相当于b[1][0];
同理 * ( ( * a)+1) ==2 相当于b[0][1];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值