int a[6]={1,2,3,4,5,6},printf(“%d\n”,*((int *)(&a+1)-1));;打印结果是什么?
时间: 2024-04-18 09:31:29 浏览: 63
该代码的输出结果是:5。
解释:首先,`&a` 表示数组 `a` 的地址,即 `&a` 等价于 `&a[0]`。然后,将 `&a` 强制类型转换为指向整型的指针 `(int *)`。接下来,`(&a+1)` 表示 `&a` 的下一个地址,即指向数组 `a` 的末尾之后的位置。然后,从该地址减去 1,得到指向数组 `a` 最后一个元素的地址。最后,通过解引用 `*((int *)(&a+1)-1)` 取得该地址处的值,即数组 `a` 的倒数第二个元素的值,即 5。
阅读全文