首页技术int p[4]和int( p)[4]?int #p;p=p+1

int p[4]和int( p)[4]?int #p;p=p+1

编程之家2026-05-211019次浏览

大家好,int p[4]和int( p)[4]相信很多的网友都不是很明白,包括int *p;p=p+1也是一样,不过没有关系,接下来就来为大家分享关于int p[4]和int( p)[4]和int *p;p=p+1的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

int p[4]和int( p)[4]?int #p;p=p+1

int (*p)[4] 和 int *p[4]的区别

int(*p)[4]和 int*p[4]的区别为:性质不同、长度不同、指向不同。

一、性质不同

1、int(*p)[4]:int(*p)[4]是个指针,指向有四个int类型数据的数组。

2、int*p[4]:int*p[4]是个数组,每个元素都是一个int*指针。

二、长度不同

1、int(*p)[4]:int(*p)[4]的长度为1,为一个数组。

int p[4]和int( p)[4]?int #p;p=p+1

2、int*p[4]:int*p[4]的长度为4,有四个元素空间。

三、指向不同

1、int(*p)[4]:int(*p)[4]的指针指向明确,为数组的逻辑地址位置。

2、int*p[4]:int*p[4]每个指针指向哪里需要程序中后续再定义。

int(*p)[4] int*p[4]

楼主你好。首先学习指针是有好多概念容易混淆。下面我来帮你区别一下:

1、int(*p)[4];------ptr为指向含4个元素的一维整形数组的指针变量(是指针)

int p[4]和int( p)[4]?int #p;p=p+1

2、int*p[4];-------定义指针数组p,它由4个指向整型数据的指针元素组成(是数组)

3、int(*)[4];--------实际上可以看作是一种数据类型。也就是第一个(int(*p)[4];)中定义的p的数据类型

其实你要看这种到底是什么,就是要看他最先和谁结合。比如1中p先与*结合,那就说明p本质是一个指针;而2中p先与后面的[4]结合,说明他本质是一个数组。再慢慢理解。希望能帮到你。如有疑问可以再问我。

int(*p)[4]是什么意思,int(*p)[4]=a又是什么意思呢谢谢~~~

int(*p)[4]=a;定义一个行指针,并指向二维数组的第0行(a在这里表示二维数组的首地址,即第0行的首地址,这和一维数组有些区别) int*q=a[0];或者 int*q=&a[0][0];这两个效果一样,都创建了一个简单的整型指针,并指向二维数组第一个元素的首地址,这样的话指针可以在数组中逐个访问数组元素.(在二维数组 a[3][4]里 a[0]表示第0行第0列元素的地址,依次类推 a[i]+j表示第 i行第 j列元素的地址)(*p)[i+i/2]=*q+1;这段代码只执行一次,(*p)[i+i/2]表示第0行第 0列的元素((*p)与a[0]是等价的)*q表示第0行第0列元素的值1,所以这句话的意思是把二维数组的第一个元素加 1,变成2,p++,++q这句话执行两次,p指向第2行,q指向第2列,接下来就是显示 a[0][0] a[1][1] a[2][2]( a[0][0]已经变为2),*((int*)p)与 a[2][0]等价*q与 a[0][2]等价

个人见解,仅供参考!

关于本次int p[4]和int( p)[4]和int *p;p=p+1的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。

c++创建文件 新建C++文件需要注意什么开奖论坛源码,开奖网站源码