C小测验——102 |问题5

在以下程序片段的上下文中,选择最佳答案。

null

#include "stdio.h"
int arr[10][10][10];
int main()
{
arr[5][5][5] = 123;
return 0;
}


以下哪种printf语句能够打印arr[5][5]

(i) printf ( "%d" ,arr[5][5][5]);
(ii) printf ( "%d" ,*(*(*(arr+5)+5)+5));
(iii) printf ( "%d" ,(*(*(arr+5)+5))[5]);
(iv) printf ( "%d" ,*((*(arr+5))[5]+5));


(A) 只有(我)会编译和打印123。 (B) (i)和(ii)都将编译并打印123。 (C) 只有(i)、(ii)和(iii)会编辑,但只有(i)和(ii)会打印123。 (D) 只有(i)、(ii)和(iii)将进行编辑,三者都将打印123。 (E) 所有(i)、(ii)、(iii)和(iv)将进行编辑,但只有(i)和(ii)将打印123。 所有(i)、(ii)、(iii)和(iv)将进行编译,所有将打印123。 答复: 说明: 对于数组,我们可以将数组下标运算符[]转换为具有适当偏移量的指针差异运算符*。这意味着arr[x]等于*(arr+x)。基本上,这两者是可以互换的。同样的概念也适用于多维数组。

这就是为什么上述4个printf都指同一个元素,即。 arr[5][5][5] 这个问题的小测验

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享