++和--都是单目运算符,只带一个操作数,这两个运算符的作用是使变量自增1或减1
因为++和--性质相同,所以以下用++为例
++又可分为前置++和后置++,而++的难点即在前置和后置的运算顺序,前置++,先执行自增再使用该值(如++i即先执行i=i+1再使用i值),后置++则先使用再执行。若只使用i值,则前置和后置从表面来看并无区别,但若与其他值相运算,则会出现区分。
例:
j=3;k=++j; k=4,j=4
j=3; k=j++; k=3,j=4
j=3; printf (“%d", ++j); 4
j=3; printf("%d",j++); 3
a=3;b=5;c=(++a)*b; c=20,a=4
a=3;b=5;c=(a++)* b; c=15,a=4
自增、自减运算符注意事项:
1.++和--运算符只能用于变量,不能用于常量和表达式。因为++和--蕴含着赋值操作。
例如:5++、--(a+b)都是非法的表达式。
2.负号运算符、++、--和强制类型转换运算符的优先级相同,当这些运算符连用时,按照从右向左的顺序计算,即具有右结合性。
3.两个+和-之间不能有空格。
4.在表达式中,连续使同一变量进行自增或自减运算时,很容易出错,所以最好避免这种用法。
例如:++i++是非法的。
5.自增、自减运算,常用于循环语句中,使循环控制变变量加(或减)-1,以及指针变量中,使指针指向下(或上)一个地址。