1. 首先分析代码: - 在函数 fun 中,定义了 int *p, j, i = 10; ,这里 p 是一个指向 int 的指针, j 是一个 int 变量, i 初始化为10。 - 然后 p = &j; ,让 p 指向 j 。 - 接着 *p = i++; ,这相当于 j = i++; ,先将 i 的值(10)赋给 j ,然后 i 自增为11。 - 再计算 i += sizeof(i)+sizeof(*p)+sizeof(p); - 在32位系统中, sizeof(i) ( int 类型大小)为4字节, sizeof(*p) ( int 类型大小,因为 p 指向 int )为4字节, sizeof(p) (指针大小)为4字节。 - 所以 i += 4 + 4+4 ,即 i += 12 ,此时 i = 11+12 = 23 。 2. 答案: - 函数 fun 的返回值是23,答案选B。