自增(++))与自减(--)运算符
- 前置:先自增(自减),再取值
++v;<--->(v = v+ 1,v)
--v;<--->(v = v+ 1,v)
-后置:先取值,再自增(自减)
v++;<--->(v = v+ 1,v-1)
v--;<--->(v = v- 1,v+1)
注意:
-自增(自减)操作符的结合方向“从右至左”
-不要在一个表达式中混合四则运算与自增(自减)运算
i = i++ * ++i;NO
#include<stdio.h>
int main()
{
int a = 0;
int c = 1;
/*自增(自减)操作符的结合方向“从右至左”*/
a =- c++;//后置:先取值,所以c= c++ = 1++ = 1+1 = 2;a先取值,a=-1;
printf("a = %d\n", a);//a=-1
/*前置:先自增(自减),再取值*/
a =+ ++c;//c=2,++c = c+1 = 3,c = 3,a = +c = +3 = 3
printf("a = %d\n", a);//a=3
a =- c--;//a=-c=-3,c--=3-1=2
printf("a = %d\n", a);//a=-3
getchar();
return 0;
}
goto-程序世界中的“破坏者
- goto 是C 语言中的一个关键字,用于无条件暴力跳转
- goto 的跳转位置由标签指定(具体指定某行代码)
- 标签就是一个℃ 语言中的合法命名,并以冒号(:)结束
-语法:goto LABEL;
c=1;
goto LABEL;
c=2;
LABEL:
printf("c=%d\n",c);
示例
#include<stdio.h>
int main()
{
int a = 0;
int c = 1;
if( a+c > 0)//如果a+c>0,为真;a+c=1+0=1>0
{
printf("a = %d,c = %d\n",a,c);
goto ELSE;//无条件暴力跳转标签
}
else
ELSE: printf("%d + %d = %d\n",a,c,a + c);//从if分支跳转到了else
getchar();
return 0;
}
运行结果:
小结:
前置)++和 -- :先自增(自减),再取值
后置++和 -- :先取值,再自增(自减)
goto 是C语言中的一个关键字,用于无条件暴力跳转
现代软件开发已禁用 goto (弊大于利)