下面的情况如何分析优先级。
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 值的输出不同
后缀运算符的优先级高于一元运算符,因此*x++
被解析为*(x++)
;表达式的结果x++
(这是x
) 被解除引用。
如果是*++x
, both *
and ++
是一元运算符,因此具有相同的优先级,因此运算符从左到右应用,或者*(++x)
;表达式的结果++x
(这是x + sizeof *x
) 被解除引用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)