【发布时间】:2011-11-23 23:50:57
【问题描述】:
在以下情况下如何分析优先级。
for (i=0; i<20; i++)
{
*array_p++ = i*i;
printf("%d\n",*arr++);
}
下面的代码和上面的有什么不同。
for (int i=0; i<20; i++)
{
*arr = i*i;
printf("%d\n",*arr);
arr++;
printf("%d\n",(int )arr);
}
我期待相同的输出,但 *arr 值的输出不同
【问题讨论】:
-
我建议参考这样的表格:en.wikipedia.org/wiki/….
-
您的意思是在第一个示例中增加 arr 两次,但在第二个示例中不增加?
-
另外,为什么你会期望相同的输出?第一个循环有一个 printf,第二个循环有两个。
-
删除了 gcc 标签,因为这与 gcc 无关。
标签: c operator-precedence