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