c语言所提供的运算符:
(上图中有小错误!应该是逗号表达式而不是逗号运算符)
1.基本的算数运算符
在键盘上我们以*代替X,以/代替÷。
c语言中的除法,与我们数学中的除法是有差异的。例如5/3=?,在数学中,5÷3=1.666……,而在c语言中,5/3=1,舍去了小数部分。在c语言中,两个实数相除的结果是双精度实数,两个整数相除的结果是整数。当两个数相除时,有一个是负数,则舍去的方向不确定,不同的编译系统结果也不相同,比如-5/3,有的结果为-1,而有的是-2。在vc中,是“向零取整”。
%运算符,要求操作数为整数,结果也是整数。
除%之外的算术运算符,操作数可以是任何类型。
2.自增(++)、自减(--)运算符
自增(++)、自减(--)一般用于循环语句中或是使指针指向的下一个地址
3.位运算符
位运算符涉及到了内存的知识,理解起来稍有困难。
(1)&:按位与,位(0和1)都为1,结果为1,否则为0,例如,a&b;
(2)|:按位或,位都为0时,结果为0,否则为1,例如a|b ;
(3)^:异或, 相同位为0,不相同的位为1,例如a^b;
(4)~:取反,0变成1.1变成0,例如~a。 (以上a,b都是二进制数)
4.逗号表达式
逗号表达式是c语言提供的一种特殊的操作符,它的优先级最低
(表达式1,表达式2,表达式3,……),从左到右,依次计算每个表达式的值,最后一个表达式的值是最终结果。
例:a=(a=3*3,a*5)该表达式的值为45
5.运算符的优先级和结合性
操作符是有优先级和结合性的。基本的算术运算符是从左往右(左结合性)进行运算,赋值运算符(==)是从右往左(右结合性)进行运算的。由于运算符种类多,所以一般我们只需记住以上两种即可,遇到复杂的查询一下。
当我们在写一个表达式时,当其中包含了多种不同操作符时,我们可以加上(),让操作符和操作数按照我们的意图结合,这样可以避免了因为不知道操作符的优先级而导致的错误。
6.成员运算符
(结构体、类、共同体等)取成员运算符