其实你的题目里面写法就有问题。
若有定义
int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;
A.*(p+i) B.*(a+i)
C.p[i] D. *a[i]
应该这样才对,然后题目定义的指针p指向数组a,也就是指向数组的第一个元素的地址。然后定义的变量i也没有具体赋值,后面就直接引用了。那我们就认为i为一个在这个题目里有效的数字。
A选项,是取内容,*(p+i)相当于取p指针往后移i个单位的那个地址的内容,是对的。
B选项,a是数组名是不可以改变的,a+i是错误的。
C选项,应该也是对的,除非他越界了。
D选项不需要取内容符号*。
1、i 要赋值,否则会 下标越界
2、 *a〔i〕 这个D 没有如此用法,除非 * 是表示 乘积