一、算数运算符
1、单目运算符
说明: ++ -- +(正) -(负) *(解引用运算符,后面讲)
++a与a++的区别:
int a = 1,int x = ++a; : ++ 在前,先自加1,后执行程序
int a = 1,int x = a++; : ++ 在后,先执行程序,后自加1
int i = 3;
int sum = i+++i++;
printf("sum=%d,i=%d\n",sum,i);
//因为++在后,所有第一个i++为3,赋值后加1,则第二个i++为4,sum=7;当计算完成后i进行加1,i=5
int i = 3;
int sum = i+++(++i);
printf("sum=%d,i=%d\n",sum,i);
//因为第一个++在后,所以i先参与运算,再加1,则i++为3。所以++i从4开始,又因为后面++在前,所以先加1,再参与运算,++i为5,则sum=8,i=5
2、双目运算符
说明: + - * / %
printf(3/2); // 1,为什么不是1.5,因为是整型的运算,会直接舍弃掉小数部分
printf(3*1.0/2); // 1.5 为什么是1.5? 3*1.0:转换为double
printf(10%3);// 1 取余
printf(10.0%3);// error 取余是针对整数进行的
二、关系运算符
说明: > < >= <= != ==
由关系运算符构成的表达式称为关系表达式,关系表达式的值为boolean(布尔值)
非0 :关系成立,为真
0 :关系不成立,为假
printf("%d\n",2>5); //0
printf("%d\n",7!9); //1
printf("%d\n",4>=8); //0
printf("%d\n",3==3); //1
表达式就是表达某种意思的式子。在C语言中,表达式指的是 运算符 连接 操作数 (变量|常量...)的式 子。
三、逻辑运算符
说明: &&(与) ||(或) !(非)
&& :逻辑与(且),符号两边的操作数都为真,结果才为真。举例: ((5>4)&&(5-4)>1) ,结果 0
|| :逻辑或(或),符号两边的操作数只有有一个为真,结果就为真。举例: ((5>4)||(5- 4)>1) ,结果 1
! :逻辑反(取反),取反,非0为真,举例: !(!(5>4)) ,结果 1