#include <stdio.h>
int main()
{
int i[ ] = {3, 5};
int *p = i;
int j = --*p++;
printf("j = %d\n\n", j);
return 0;
}
有人可以向我解释为什么答案是&#34; j = 2
&#34;?
这个代码来自课程笔记本;他们没有在书中解释它。
答案 0 :(得分:0)
此行为可以描述为运算符优先级,它与C编译器处理代码的方式有关。在这种情况下,后缀++
运算符优先于*
运算符,并在之后递增指针到数组,您使用前缀{{1>递减了解除引用指针的值可以肯定地说它是这样编写的:
--
参考文献: