跳到主要内容

已知有以下的说明, int a[]={8,1,2,5,0,4,7,6,3,9}; 那么a[*(a+a[3])]的值为 ?

参考答案:

首先,我们来逐步解析表达式 a[*(a+a[3])]

已知数组 a{8,1,2,5,0,4,7,6,3,9}

  1. a[3] 获取数组 a 中索引为 3 的元素的值,即 a[3] = 5
  2. a + a[3]:由于 a[3] 的值为 5,所以 a + a[3] 就是 a + 5。在 C/C++ 中,数组名 a 实际上是指向数组第一个元素的指针。因此,a + 5 就是指向数组 a 中索引为 5 的元素的指针。
  3. *(a + a[3]):这是一个指针解引用操作。由于 a + 5 是指向数组 a 中索引为 5 的元素的指针,所以 *(a + a[3]) 就是获取该元素的值,即 a[5] = 0
  4. a[*(a + a[3])]:现在我们知道了 *(a + a[3]) 的值为 0,所以 a[*(a + a[3])] 就是 a[0],即数组 a 的第一个元素。

因此,a[*(a + a[3])] 的值为 a[0] = 8

学习笔记
|||
说点什么吧
 
100:0
鲤跃网
http://www.sunycode.com
讲文明、要和谐
提交学习笔记
0 学习笔记
  • 还没有学习笔记,快来抢沙发吧!