指针数组和数组指针之个人见解

第一次发博客~~简单说一下自己对于“指针数组”以及“数组指针”的认识


指针数组:指的是存放指针的一维数组,形如 : int *p[4]。由于【】的优先级比*的优先级要高,所以先与【4】结合,然后再与前面的*结合。既然叫指针数组,那么其本质上还是一个数组,相较于其他存放数值的数组而言,这里存放的是地址。(注意值和址的不同)


数组指针:指的是指向一维数组的指针。形如:int (*p)[4]。即(*p)有四个原宿,每个元素为整型。也就是p所指的对象是有4个整型元素的数组,即p是指向一维数组的指针。可认为是一个二维数组。

#include <stdio.h>

int main(void)
{
	//指针数组 
    int *a[4];//定义长度为4的一维数组,数组的每个变量都是一个指针 
    int b[4]={1,2,3,4};
    int i, j;
    for(i = 0; i < 4; i++ )
    {
        a[i] = &b[i];//数组a中的每一个元素都是数组b的地址 
        printf("%d\n",*a[i]);
    }
	//数组指针 
	int (*c)[4];//指针变量c指向包含4个整型元素的一维数组 
	//(*p)有4个元素,每个元素为整型 
	//可类比我们熟悉的int c[4],即c有四个元素,每个元素为整型 
	int d[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};//构建二维数组 
	c = d;//将二维数组的首元素地址赋给数组指针d 
	for(i = 0; i <3; i++)
	{
		for(j = 0; j < 4; j++)
		{
			printf("%d\n", *(*(d+i)+j));
			//printf("%d\n", *(d[i]+j)); 
		}
	}
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值