C语言中指针与数组有什么关系

上面的函数参数是*Q,为什么函数内部就用上了Q[i]这种形式... 上面的函数参数是*Q,为什么函数内部就用上了Q[i]这种形式 展开
 我来答
匿名用户
2015-10-07
展开全部
c语言中数组和参数可以通用,数组有一个基址,c中用指针指向它,计算数组元素地址的时候,是基址+元素字节数*(元素序号-1)。
更多追问追答
追问
嗯,就是上面的函数参数为int* Q,而在函数内部就直接用Q[i]这种方式来对内存操作,所以不太明白
追答
两种方式都是可以的,用Q[i]的形式方便,编译器给你算好了;直接用指针要自己计算地址,计算方法Q+sizeof(int)*(i-1)。
数组作为参数传递时,习惯写作指针形式。
AirStorm
2015-10-07 · TA获得超过242个赞
知道小有建树答主
回答量:139
采纳率:0%
帮助的人:115万
展开全部
数组名代表数组在内存中的首地址。
指针可以存储一个地址,也即指向某地址。
在C中,对于某地址的访问有两种方式:
1.直接访问,如用变量名进行赋值等;
2.间接访问,例如数组Q[i]。
基于上述两种形式,C语言标准规定,指针可以模拟数组的行为。so,你的问题得解。
更多追问追答
追问
还是不太明白,就是平时好像只见过*Q+n和*(Q+n)这种形式的,但是上面的函数参数数int* Q,而在函数内部就直接用Q[i]这种方式来对内存操作
追答
关键点就在那句话:指针可以模拟数组的行为。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式