若有以下说明,且0<=i<10,则____是对数组元素地址的正确表示: int a[ ] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, *p = a, i ; A a++ B &p C &(a+1) D &p[i ]
时间: 2024-04-29 20:19:19 浏览: 38
正确的表示是 `&a[i]`。`a++` 是错误的,因为 `a` 是一个数组名,不能进行自增运算。`&p` 是指针 `p` 的地址,不是数组元素的地址。`&(a+1)` 表示整个数组后面的地址,不是数组元素的地址。`&p[i]` 是指针 `p` 的第i个元素的地址,不是数组元素的地址。因此,只有 `&a[i]` 是正确的表示方式。
相关问题
若有以下说明,且0<=i<10,则对数组元素的错误引用是()。 int a[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, *p = a, i; A. *(a+i) B. a[p-a+i] C. p+i D. *(&a[i])
正确答案是A. *(a+i)。
在这个代码中,a是一个数组名,它指向数组的第一个元素。p是一个指向整型变量的指针,它指向数组的第一个元素。i是一个整型变量,它的值为未定义。
在C语言中,数组名可以被解释为指向数组第一个元素的指针。因此,a和p所指向的地址相同,即a和p都指向a[0]。
选项A中,*(a+i)表示a数组中第i个元素的值,因为a[i]等同于*(a+i)。
选项B中,p-a表示p指针所指向的地址减去数组a的地址,即0。因此,a[p-a+i]等价于a[i]。
选项C中,p+i表示p指针所指向的地址加上i个整型变量的大小,即p+i指向数组a中的第i+1个元素,而不是第i个元素。
选项D中,&a[i]表示a数组中的第i个元素的地址,*(&a[i])表示该地址中存储的值,等价于a[i]。
功能:一维int型数组a已正确声明并初始化,利用下标来依次输出数组的每个元素。for(i=0; i<=_【1】__ ;i++)System.out.print(a[i]+"");
请将空格处的代码补充完整为数组a的长度减一。
```
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
```
其中,`a.length` 表示数组 `a` 的长度,由于数组下标从 `0` 开始,因此输出数组的每个元素时需要循环到 `a.length - 1`。另外,为了方便查看每个元素,我在输出语句中添加了一个空格。