数组参数的地址和数组参数的第一个元素的地址一样吗?为什么?
2个回答
展开全部
假设有一维数组a[10],指针变量p要指向这个数组的首地址,即a[0]的地址,那么p=a,似乎是固定的语法,这个数组的首地址就为数组名a,其实应该是a+0;因为零不算,就直接表示成a了。
那么a[0]到a[9]的每个元素的地址,都可以用a+i来表示,i为元素的个数,即a[1]的地址为a+1,以此类推。
故 数组名是没有地址的,只有数组中的每个元素有地址,而数组元素的地址,用“数组名+i”的形式来表示而已。
以上为C语言固定的语法。
那么a[0]到a[9]的每个元素的地址,都可以用a+i来表示,i为元素的个数,即a[1]的地址为a+1,以此类推。
故 数组名是没有地址的,只有数组中的每个元素有地址,而数组元素的地址,用“数组名+i”的形式来表示而已。
以上为C语言固定的语法。
追问
那假如真的用(&数组名)这个指令的话,会怎样?
追答
你可以试试printf输出看看(&数组名)得出的结果,与指针指向数组名的地址结果是否一样。
&加元素才能行成取址,例如&a[i],i为元数个数
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询