-3

如何解释这些预增量运算符?
预增量运算符具有从右到左的关联性,所以最右边的i将被递增或所有的i's 将被递增一次?

main()
 {
    int i=3,j;
    j=++i*++i*++i;
    printf("%d",j);
 }

答案是 216。

4

3 回答 3

0

根据c11 标准,§6.5 标准。在工作草案 2 中,这样的表达确实是未定义的。

于 2013-08-13T12:49:06.247 回答
-1

Answer is 150

Is it equal to (++i * ++i) * ++i, first ++i increments i (i=4), second ++i increments i (i=5) but it is the same i so 5*5 = 25. Finally 25 * ++i = 150

于 2013-08-13T12:54:03.113 回答
-1

++i 在操作之前递增 i。

您的代码相当于:

int i=3,j;
j=(i+1)*(i+2)*(i+3);
i++;i++;i++;
printf("%d",j);

这将输出4*5*6=120

于 2013-08-13T12:49:13.753 回答