逗号表达式,++,--,是什么?
逗号表达式:
简单来说就是,逗号表达式是C语言提供一种特殊的运算符——逗号运算符。它的优先级别最低,它将两个及其以上的式子联接起来,从左往右逐个计算表达式,整个表达式的值为最后一个表达式的值。那么可能有同学就会这么想,但如果这样子的话,是不是我直接就可以看最右边的式子,然后算出它的表达式结果不就好了吗??
所以就与今天的主题,++和--联系起来了!!!!!
“ ++ ” 和 “ -- ” 操作符:
i++ 是先赋值再运算+1;++i 是先运算+1再赋值;
i- - 是先赋值再运算-1; - - i 是先运算-1再赋值;
详细步骤
一、从简单实例理解
i ++
同理可得,--i和i--是一样的操作!!
二、从复合实例理解
在理解和差不多摸清自增和自减以后,让我们升级难度,来结合逗号表达式进行更深度的理解和加深印象!!
a++ && ++b && d++ 前置++,先使用,再+1,所以此时a++的值为1,但是a本身在使用过后还会加1,所以,此时a=2. 后置++,先+1,再使用,所以此时++b的值为3,b会加1,所以b的值为3. 同理可得!!
#include<stdio.h> int main() { a=5; c=++a; //前置++,先++,再使用;所以c=6,此时a=6; b=++c,c++,++a,a++; //逗号表达式从左往右算,观察并计算此时a,b,c的值。 //++c,前置,所以此时c=7; //c++,后置,所以此时(c++)整体为7,c=8; //++a,前置,所以此时a=7; //a++,后置,(a++)为7,但是a=8; //b的值为,逗号表达式的最右边,b=7。 b+= a++ + c; //+=和+的优先级,+大于+=,所以(a++)为8;但a=9; //a++ + c值为8+8=16; //b+=即b=b+16 // =7+16 // =23 printf("a= %d b=%d c=%d",a,b,c); =9 =23 = 8 return 0; }
所以,学到这里,肯定恍然大悟吧!!
赶快趁热打铁,多多加深印象吧!!!