c语言的问题
若有以下说明,并且0<=i<10,则()是对数组元素的引用的错误引用。inta[]={1,2,3,4,5,6,7,8,9,10},*p=a,i;A、*(a+i)B、a[p...
若有以下说明,并且0<=i<10,则()是对数组元素的引用的错误引用。 int a[]={1,2,3,4,5,6,7,8,9,10},*p=a,i;
A、*(a+i) B、a[p-a+i] c、p+i D、*(&a[i])
不懂,能给我没个答案讲解以下吗? 展开
A、*(a+i) B、a[p-a+i] c、p+i D、*(&a[i])
不懂,能给我没个答案讲解以下吗? 展开
2个回答
展开全部
楼上错的
首先有个问题,你数组元素初始化后是10个,而你下标索引是 0 -10 是11个,所以用指针加这个I去取元素,肯定会数组越界的,虽然不一定会报错,但是会访问到一个为分配的内存,取出一个随机值。
撇开这个不说,但这个题的考点很明显
A B D 都是正确的 是取元素
C 是指针
所以题目中说的对元素的引用的错误引用就是C
【指针是对元素地址的引用】
【如果你了解了引用的定义,这里就好理解了】
【不过题目出的太垃圾了,文字蹩脚,而且还不严谨】
*(指针名) 取出元素
*(变量地址) 取出元素
&(变量名) 取出地址
数组名[下标索引 0 - 【size-1】] 取出对应的元素。
首先有个问题,你数组元素初始化后是10个,而你下标索引是 0 -10 是11个,所以用指针加这个I去取元素,肯定会数组越界的,虽然不一定会报错,但是会访问到一个为分配的内存,取出一个随机值。
撇开这个不说,但这个题的考点很明显
A B D 都是正确的 是取元素
C 是指针
所以题目中说的对元素的引用的错误引用就是C
【指针是对元素地址的引用】
【如果你了解了引用的定义,这里就好理解了】
【不过题目出的太垃圾了,文字蹩脚,而且还不严谨】
*(指针名) 取出元素
*(变量地址) 取出元素
&(变量名) 取出地址
数组名[下标索引 0 - 【size-1】] 取出对应的元素。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询