【发布时间】:2014-12-31 18:42:21
【问题描述】:
int main()
{
int a=10;
int *b=&a;
int c=*b++;
printf("%d",c);
}
我知道下面的程序输出 10.但是根据优先级表,它给出了运算符 http://www.difranco.net/compsci/C_Operator_Precedence_Table.htm) 的优先级,post-fix ++ 的优先级高于 = 和 *.so ++ 应该先评估然后 *.then 为什么程序打印输出为 10?
【问题讨论】:
-
也许你想试试这个:
int c = (*b)++;(打印 10)与int c = ++(*b);(打印 11)。在这两种情况下,a都变为 11。