#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)括号里的执行顺序的问题
请查阅++i
与i++
的区别。
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)
然后你再思考一下。