×

指针数组与数组指针的区别

指针数组与数组指针的区别(数组指针和指针数组的区别)

admin admin 发表于2023-10-27 09:39:06 浏览28 评论0

抢沙发发表评论

本文目录

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

数组指针,是指向数组的指针。通常所说的数组指针,只是一个指针,他只能存放一个地址。一般用于多维数组。举例说明,假设有一个四行五列的二维数组A,C语言认为它是由四个五元素的一维数组首尾相连组成的。当定义一个数组指针P时,让p指向二维数组的首地址,其实他指的也是第一个一维数组的首元素地址,当执行P+1之后,P就指向了第二个一维数组的首元素地址,或者p再+2以后就指向了第四个一维数组数组的首元素地址。 int a={{1,2,3,4,5},{6,7,8,9,10}}(*p)=a;则*(*(p+1)+1)代表第二行的第二个元素7。 指针数组是由若干指针组成的数组,它是一组指针,而不是一个指针。它和普通的数组一模一样,只是它存放的是指针,也就是地址,而不是元素的值。如:int a=2,b=3,c=5;int*p;p=&ap=&bp=&c则*p,*p分别代表3和5。有什么问题请留言。

数组指针与指针数组的区别

数组指针是指向这个数组首地址的指针,指向对象是这个数组; 指针数组是存放一类指针的数组,这个数组的每个元素都是一个指针; 例子: int a; int* s; s = a;//这里s就是一个数组指针,它的值就是数组a 的首地址;当然,如果a是一个整数,那s就是一个指向整型的指针; int a; int* s; for(int i=0;i《5;i++)s=a; //这里s就是一个指针数组,它的每个元素都是整型变量a的地址

数组指针和指针数组有什么区别

数组指针和指针数组的区别数组指针(也称行指针)定义 int (*p)优先级:()》》*

指针数组与指向指针的指针有什么区别

他们的区别是:指针数组,表示的是一个由指针变量组成的数组也就是说其中的元素都是指针变量,而数组指针表示的是这是个指向数组的指针。

那么该指针变量存储的地址就必须是数组的首地址得是个指向行的地址,比如a数组中的 a,a+2 等,不能是具体的指向列的地址,如 &a{2], &a 这类地址。

指针数组:

指针数组可以说成指针的数组,这个变量是一个数组。其次指针修饰这个数组,意思是说这个数组的所有元素都是指针类型,在 32 位系统中指针占四个字节。

数组指针:

数组指针可以说成是数组的指针.这个变量是一个指针。其次数组修饰这个指针,意思是说这个指针存放着一个数组的首地址,或者说这个指针指向一个数组的首地址。

根据上面的解释可以了解到指针数组和数组指针的区别,因为二者根本就是种类型的变量。

分析指针数组与数组指针的区别和应用

区别很容易解释:

指针数组 是 数组,它里面每个元素都是个指针……

数组指针 是 指针,它指向一个数组……

应用嘛,这个就比较发散了。。。。一个存指针的数组的应用就是开放式哈希表,就是利用链表解决冲突的那种哈希表啦。比如长度为5的哈希表就是长这个样子的:

ListNode* hashtable; //声明长这个样纸//未来存储的结构大概是这个样纸0-》10-》5-》15-》NULL1-》111-》21-》6-》16-》NULL2-》27-》17-》2-》NULL3-》13-》8-》NULL4-》4-》14-》19-》NULL

指向数组的指针,具体应用场景我还真的一时半会想不出来简单的,但有个乒乓机制应该是实际项目会用到的。

具体场景就是多线程环境下,有一个数组int p供多个线程访问(其他线程只读取这个数组)。

但是这个数组需要定时更新,内容从文件中来。读文件相对来说还是比较耗时。我们不想在更新数据的时候让其他线程等待太久。

为了达到这个目的,可以设置两个一样大的数组int A和int B,对外提供一个指针int *p,它一开始指向A数组(p = A;),时间到了就读取数据到B数组,并将指针p指向B数组(p = B)。下次时间到则读取数据到A数组,并让p指向A数组。

指针数组与数组指针的区别是什么麻烦详细点

指针数组:arrayofpointers,即用于存储指针的数组,也就是数组元素都是指针数组指针:apointertoanarray,即指向数组的指针还要注意的是他们用法的分别,下边举例表明。int*a指针数组表明:数组a中的元素都为int型指针元素表明:*a

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

当然有区别了,指针数组存放的是都是指针,即数据类型是指针!而数组指针是用指针指向一个数组!比如数组名本身也是指针!例如:for(i=0;i《10;i++){a=i;}与for(i=0;i《10;i++){*(a++)=i;}等效!!呵呵!不好意思,本人刚学c一年,熟练不够,谢谢指出!!非常感谢!!!

数组指针,指针数组区别!要详细,超详细!我区分了好多次了,还是不清楚啊

1、在c和c++中数组的指针就是数组的起始地址(也就第一个元素的地址),而且标准文档规定数组名代表数组的地址(这是地址数值层面的数组表示)。2、指针数组是指一个数组中的每个元素都是一个指针,也就是多维数组。说白了,数组指针就是指指向数组首地址的指针,也可以说是数组的首地址。而指针数组,按字面意思,指针的数组,存放指针的数组,也就是数组中每一个元素都是指针,即多维数组。 总而言之,数组指针是指一个指针,而指针数组是一个多维数组。 例子:int a;int (*p);int *p第一个,是指针数组,a可以看成是存放三个指针的数组a,且每个指针指向一个存放4个整型数据的数组。第二个,int (*p);这个和第一个例子的表达的意思一模一样,我们可以这样赋值:int (*p)=a;其中p表示指向存放4个整型数据数组的指针,不过它没有给出指针的具体定义,所以我们还可以用这样赋值来理解:若int b;(n为int数据)则int (*p)=b;(p也是指向一个存放4个整型数的数组,但这里有n个p指针!)。第三个,int *p;它定义了一组存放三个指针的整型数组,我们可以近似地理解:如int *q;(定义了一个q指针);int *p;(定义了一组指针)。(这一组指针的定义等同于这样三个指针的定义:int *x,*y,*z。)