指针数组和数组指针的区别有哪些?

 我来答
娱乐圈小鸽子
高能答主

2019-10-23 · 小鸽子,爱娱乐,专注分享娱乐知识
娱乐圈小鸽子
采纳数:973 获赞数:80709

向TA提问 私信TA
展开全部
指针数组:表示的是一个数组,数组中每一个变量都是指针型变量。数组指针:表示的是一个指针类型的变量,这个指针变量指向的是一个数组。
云云0710
2020-12-27 · 长得漂亮是优势,活得漂亮是本事
云云0710
采纳数:55 获赞数:7606

向TA提问 私信TA
展开全部

指针数组和数组指针的区别主要有以下几点:

1、数组名不可以改变,而指向数组的指针是可以改变的。字符串指针指向的字符串中的字符是不能改变的,而字符数组中的字符是可以改变的。求数组长度时,借用数组名可求得数组长度,而借用指针却得不到数组长度。

2、数组名的指向不可以改变,而指向数组的指针是可以改变的。因为数组名的指向是不可以改变的,使用自增运算符自增就会改变其指向,这是不对的,数组名只能指向数组的开头。

3、指针数组是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。数组指针是一个指针,它指向一个数组。在32位系统下永远是占4个字节,至于它指向的数组占多少字节。

4、字符串指针指向的字符串中的字符是不能改变的,而字符数组中的字符是可以改变的。指针数组本身就是个数组,只不过呢,它里面存放的数据类型不是int,也不是char这类基本类型,而是一个指针类型,说白了就是地址。

扩展资料:

对于指针数组,首先,它是一个数组,知道数组的元素是一个指针,换句话说,数组存储一个指针。此外,数组本身的字节数由数组本身决定;

数组指针,首先它是一个指针,数组指针的指针数组,也就是说,它是一个指针指向一个数组,唯一可以确定的是它是4个字节在32位系统中,但多少字节是指向一个数组,这不是确定的,它取决于情况。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ATM半夏荧光
高粉答主

2019-10-24 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:883
采纳率:100%
帮助的人:21.1万
展开全部

指针数组:表示的是一个数组,数组中每一个变量都是指针型变量。数组指针:表示的是一个指针类型的变量,这个指针变量指向的是一个数组。

数组指针的本质就是一个指向数组地址的指针。所占内存空间大小为4char(*p),这里的p指向一个含有4个char类型的数组。

假设char a[4]={'a','b','c','d'},数组的地址和数组中首元素的地址相同,a+1是在数组移动一个元素的长度,移动距离为1,而p+1是是移动一个数组的长度,移动距离为4。

关于二维数组和指针的关系,二维数组的本质是一个二维指针,例如    char  a[2][3]  ,char **p=a,*p(i)+j  是指向元素p[i][j]的地址,等同于a[i]+j,*(*p(i)+j)表示a[i][j]元素,等同于*p[i][j],*p(i)是指向数组第i行的地址,*p是表示二维数组的地址。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
社会攻客
高能答主

2019-10-23 · 互联时代,网络大事
社会攻客
采纳数:55 获赞数:48097

向TA提问 私信TA
展开全部

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

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

指针数组:

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

数组指针:

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

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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
窗外的社会
高粉答主

2019-10-23 · 此处无声胜有声,自由自在
窗外的社会
采纳数:247 获赞数:135041

向TA提问 私信TA
展开全部

指针数组和数组指针的区别主要有以下几点:

1、数组名不可以改变,而指向数组的指针是可以改变的。字符串指针指向的字符串中的字符是不能改变的,而字符数组中的字符是可以改变的。求数组长度时,借用数组名可求得数组长度,而借用指针却得不到数组长度。

2、数组名的指向不可以改变,而指向数组的指针是可以改变的。因为数组名的指向是不可以改变的,使用自增运算符自增就会改变其指向,这是不对的,数组名只能指向数组的开头。

3、指针数组是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。数组指针是一个指针,它指向一个数组。在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节。

4、字符串指针指向的字符串中的字符是不能改变的,而字符数组中的字符是可以改变的。指针数组本身就是个数组,只不过呢,它里面存放的数据类型不是int,也不是char这类基本类型,而是一个指针类型,说白了就是地址。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(9)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式