C语言的运算符与表达式
运算符与表达式
C语言的运算符又称为操作符,是数据间进行运算的符号。C语言的运算符按运算类型可分为赋值运算符、算术运算符、逻辑运算符、关系运算符、位运算符、指针运算符和取成员运算符等;按运算对象(又称为操作数)的个数又可分为单目运算符、双目运算符和三目运算符。
将数据或变量用运算符连接起来,就构成了C语言的表达式。表达式是按照一定规则,将运算对象用运算符连接起来的有意义的式子。表达式中的运算对象可以是常量、变量、函数,也可以是别的表达式。
算术运算、赋值运算与类型转换
算术运算符与算术表达式
C语言中的算术运算符包括5个双目运算符:加“+”、减“−”、乘“*”、除“/”、求余(取模)“%”及4个单目运算符:自增“++”、自减“−−”、单目加“+”和单目减(算术取反)“−”,此外还有圆括号“()”运算符,它可以用来改变运算的顺序。
自增“++” 分为前置++和后置++ 前置++是先加1 在用值 后置++ 是先用原值 然后加1;
自减“--” 分为前置--和后置-- 前置--是先减1 在用值 后置-- 是先用原值 然后减1;
由算术运算符与数值、变量等构成的表达式称为算术表达式。
赋值运算符与赋值表达式
赋值运算用于改变变量的值。C语言中提供了1个简单赋值运算符“=”和10个复合赋值运算符:+=、−=、 *=、/=、%=、<<=、>>=、&=、^=和|=。
类型转换运算符
在表达式中,当混合使用不同类型的数据时,C语言中将对其类型自动进行转换,这种转换一般是“向上”的,即由占存储空间小的数据类型向占存储空间大的数据类型转换。
逻辑运算符与逻辑表达式
逻辑运算由逻辑运算符来完成,逻辑运算符共有3个:
&& 逻辑与
|| 逻辑或
! 逻辑非
逻辑运算的规则如下所示:
a&& b /* 只有当a与b的值均为真时,运算结果为真(1),否则为假(0)*/
a|| b /* 只有当a与b的值均为假时,运算结果为假(0),否则为真(1)*/
!a /* 当a值为真时,结果为假(0);当a为假时,结果为真(1) */
在与前面学过的其他类型运算符进行比较时,具有如下关系:
逻辑非! > 算术运算符 > 关系运算符 > 逻辑与&& > 逻辑或|| > 赋值运算符
条件运算
条件运算符是唯一的三目运算符,也是C语言中最特殊的运算符。
条件运算符的使用格式如下:
表达式1?表达式2:表达式3
它的含义是指,如果表达式1(条件)结果为真,整个运算的结果为表达式2的值;如果表达式1(条件)结果为假,整个运算的结果为表达式2的值。
sizeof 运算符
sizeof运算符用于计算其操作数的大小,即其在内存中所占字节数。