首页 > while(index++<5)括号里的执行顺序的问题

while(index++<5)括号里的执行顺序的问题

#include <stdio.h>
int main (void)
{
    int index=3;
    //index++;
    //printf("%d",index);
    while(index++<5)
        printf("Have a fair day or better.\n");
    return 0;
}

在这段程序执行的时候输出两个
Have a fair day or better.
Have a fair day or better.
在我的想法中因为++的优先级大于<号,所以 while(index++<5)这句话先执行index++再执行<5,按照我这种想法那输出只有一句Have a fair day or better.
所以向大家请教while(index++<5)括号里的执行顺序的问题


请查阅++ii++的区别。


int index = 3;

while(index++ < 5);  //index++这个运算符表示的意思是整个表达式执行完毕,才加1

index = 3 index++ < 5 第一次 index = 3 index < 5 执行完毕之后 index = 4
index = 4 index++ < 5 第二次 index = 4 index < 5 执行完毕之后 index = 5

最后说明一下,++i 与 i++的区别就是 ++i表示整个表达式计算之前就加1,i++则是相反。可以这样记住,++i就是先加后用,i++就是先用后加。


你自己也说了:

++的优先级大于<号

所以代码等价于:

while ((index++) < 5)

然后你再思考一下。

【热门文章】
【热门文章】