##赋值运算
++i与i++的区别
1.该语句在单独语句中没有任何区别,都是输出一个+1的值。
2.赋值的区别:在i++中,都是先赋值再加1
i=1;y=i++ 可以理解为i=1; y=i; i=i+1,所以结果为y=1,i=2.
在++i中,先加1,后赋值
i=1; y=++i可以理解为i=1; i=i+1; y=i,所以结果为y=2,i=2.`
3.在条件表达式中的区别:
i++的代码:
#include<stdio.h>
int main()
{
int i=0;
while(i++)
{ printf("i=%d\n",i);
if(i==3) break;
}
printf("i=%d\n",i);
最后结果输出为i=1;
分析:先执行判断后加1
i++先把i的值0拿出来做判断条件,此时while(0)条件为假,不执行所有while循环体,但是判断完成后,i执行+1动作(i=i+1),所以i=1,输出值为1;
小Tips:当一个循环体的初始值为0,则这个数据不参与任何循环代码。
++i的代码:
#include<stdio.h>
int main()
{
int i=0;
while(++i)
{ printf("i=%d\n",i);
if(i==3) break;
}
printf("i=%d\n",i);
分析:先加1后执行判断
执行过程先把i的值执行i=i+1,此时i=1再进行判断,所有while(1)条件为真,然后在执行循环体,输出i=1回车换行,if不成立,继续循环;
依次类推,当i=3时,break强制结束循环,此时输出的结果为:
i=1
i=2
i=3
i=3
总结:理解其中的核心原理,就可以在多种情境中运用了。