"long a[4] = {1, 2, 3, 4};\nlong *p1=(long *)(&a+1);\nlong *p2=(long )((long)a+1);\n那么p1[-1]和p2分别是什么内容:根据给定的代码:\n\n- p1&a + 1 的结果,即指向数组 a 的末尾后的下一个位置。\n- p2 是将 a 的地址转换为 long 类型后加上 1 的结果,即指向数组 a 的第一个元素后的下一个位置。\n\n因此,p1[-1]a[3],即数组 a 的最后一个元素的值,即 4。\n而 *p2a[0],即数组 a 的第一个元素的值,即 1。\n

C语言指针偏移:p1[-1] 和 *p2 的值分析

原文地址: https://www.cveoy.top/t/topic/pREr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录