指针pa指向数组a,然后*(pa+i)等价于*(a+i),那么pa和a的区别是什么呢?求解释

 我来答
whigmaleerig
2014-05-26 · 超过17用户采纳过TA的回答
知道答主
回答量:54
采纳率:0%
帮助的人:19.7万
展开全部
本质不同,pa本质是指针,而a是数组。在进行sizeof运算的时候,sizeof(pa)等于指针的长度,win32下为4,而sizeof(a)为数组元素的个数。
追问
那么只是在用来访问元素的时候是一样的吗
追答
在访问元素时,这两种用法几乎没有区别。但都要注意越界地址越界问题,即i要小于数组元素个数。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7cb8fc542
2014-05-26 · TA获得超过298个赞
知道小有建树答主
回答量:329
采纳率:0%
帮助的人:282万
展开全部
指针和数据是内存指针的两种形式,在内存中体现的完全一致。
他们的区别主要在于编程使用。
数组在声明的时候是申请固定大小内存的,也就是说数据在声明的时候就相当于new了一个定长的指针,而指针是不固定长度的,可以根据需要随时将内存中某一地址加挂进来。
因为数据在声明的时候已经申请了固定大小的内存,在该数据生命周期结束的时候可以比较轻松的析构,但对于指针的要求就比较高了,因为这是一个不定长的内存申请,所以在析构的时候就要特别注意,不然会造成内存的长期占用...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式