已知有以下的说明, 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}。
a[3]获取数组a中索引为 3 的元素的值,即a[3] = 5。a + a[3]:由于a[3]的值为 5,所以a + a[3]就是a + 5。在 C/C++ 中,数组名a实际上是指向数组第一个元素的指针。因此,a + 5就是指向数组a中索引为 5 的元素的指针。*(a + a[3]):这是一个指针解引用操作。由于a + 5是指向数组a中索引为 5 的元素的指针,所以*(a + a[3])就是获取该元素的值,即a[5] = 0。a[*(a + a[3])]:现在我们知道了*(a + a[3])的值为 0,所以a[*(a + a[3])]就是a[0],即数组a的第一个元素。
因此,a[*(a + a[3])] 的值为 a[0] = 8。