数组名当被直接使用时,是一个指向数组首地址的指针。如果数组是多维数组,那么数组名是指向第一行数组的首地址,而不是第一行第一列单个元素的地址,所以*(a+i)与a[i]是一个意思,当直接用a[i]时代表的是该一维数组的首地址,所以*(a[i]+j)是与a[i][j]等效,所以AB选项正确
选项代码中能正确操作数组元素的是()
1
2
3
4
5
6
7
8
9
|
int
main(){
int
a[N][N]={{0,0},{0,0}};
for
(
int
i=0;i<N;i++){
for
(
int
j=0;j<N;j++){
//访问二维数组a的值
//选项代码
}
}
}
|
正确答案: A B 你的答案: A C (错误)
*(*(a+i)+j)=1
*(a[i]+j)=1
**(a+i)[j]=1
*((a+i)+j)=1