一个关于C语言的疑问,求详解,

问题描述:

一个关于C语言的疑问,求详解,
若有说明 int i=2,a[10]={2,4,6,8,10,12,14,16};对元素a[i]的不正确引用是__.
A.*(a+i) B.a[i] C.*a+i D.*(&a[i])
请问回答这道题是用到了:对数组元素的引用应有两种形式,一是a[i]二是*(p+i)或者*(a+i)(其中赋初值p=a)这个知识点吗?如果是,请问D怎么对了?如果不是,请问应该怎么解答,用什么知识点?
1个回答 分类:综合 2014-10-04

问题解答:

我来补答
“&”是取地址运算符,所以&a[i]的意思是取了元素a[i]的地址;而“*”是取内容运算符,所以对刚才求得的地址再取一次内容,这样元素a[i]就被取出来了.C选项应该写成A选项那样,因为a是首地址,所以a+i就是元素a[i]的地址,用取内容运算符“*”,就把相应地址中的内容取出来了,所以a+i应该写括号,像A选项那样.
 
 
展开全文阅读
剩余:2000