前面我们讲解了C语言的基本变量类型,接下来,接下来,我们讲解运算符。本文介绍的运算符,有些前面用过,只是没有系统讲解,本节将把C语言的运算符,做一个系统讲解。
运算符
算术运算符
用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。
来源:百度百科
从名字上你也肯定看得出来,这七个运算符,就是在C语言里面做算术运算的。加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%),大家肯定不陌生,前面都用过,就直接上源码了:
int main(void)
{
int iA ;
int iB ;
int iC ;
iA = 70 ;
iB = 30 ;
iC = iA + iB ;
printf("%d\r\n", iC);
iC = iA - iB ;
printf("%d\r\n", iC);
iC = iA * iB ;
printf("%d\r\n", iC);
iC = iA / iB ;
printf("%d\r\n", iC);
iC = iA % iB ;
printf("%d\r\n", iC);
}
下面提到定点数、整数、浮点数、指针,包括变量和常量。
所有的定点数,都可以使用上述运算符进行算术运算;
浮点数,不能做求余运算;
指针类型不能做:乘法、除法和求余运算;
指针类型做加法运算,另一端必须是整数或者自然数类型。
指针可以做减法运算。
下面是指针可以参与的运算:
int main(void)
{
int *piInt0 ;
int *piInt1 ;
piInt0 = piInt0 + 1 ; //指针加一个整数或自然数
piInt0 = piInt0 - 1 ; //指针减一个整数或自然数
piInt0 = piInt0 - piInt1 ; //指针减去指针
}
关系运算符
用于比较运算。包括大于(>)、小于(<)、等于(==)、 大于等于(>=)、小于等于(<=)和不等于(!=)六种。
来源:百度百科
所有的数值类型、指针类型,都可以进行关系运算,但是浮点数不建议做等于运算,原因后面会讲。
逻辑运算符
用于逻辑运算。包括与(&&)、或(||)、非(!)三种。
来源:百度百科
所有数值类型,都可以进行逻辑运算。
指针类型,不能进行逻辑运算。
位操作运算符
参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。
来源:百度百科
所有的整数类型,都可以参与位运算。
赋值运算符
用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。
来源:百度百科
所有的数值类型和指针类型,都可以进行简单赋值。
复合算术赋值和复合位运算赋值,要看具体的类型,是否可以进行相应的运算,复合运算的含义,参考下面的源码及注释,其余的可以自己类推:
int main(void)
{
int iInt ;
iInt = 1 ;
iInt += 2 ; // 等价于: iInt = iInt + 2 ;
iInt /= 4 ; // 等价于: iInt = iInt / 4 ;
}