C语言入门(三):运算符
3-1 运算符号是啥
C语言中的运算就是对数据进行操作、处理的过程。运算符就是指定该运算的处理方式。
运算符的种类
※ 算术运算符
※ 赋值运算符
※ 关系运算符
※ 逻辑运算符
※ 三目运算符
3-2 算术运算符
C语言基本算术运算符如下表:
除法运算中注意:
如果相除的两个数都是整数的话,则结果也为整数,小数部分省略,如8/3 = 2;而两数中有一个为小数,结果则为小数,如:9.0/2 = 4.500000。
取余运算中注意:
该运算只适合用两个整数进行取余运算,如:10%3 = 1;而10.0%3则是错误的;运算后的符号取决于被模数的符号,如(-10)%3 = -1;而10%(-3) = 1。
注:C语言中没有乘方这个运算符,也不能用×,÷等算术符号。
3-3 自增与自减运算符
自增运算符为“++”,其功能是使变量的值自增1;自减运算符为“–”,其功能是使变量值自减1。它们经常使用在循环中。自增自减运算符有以下几种形式:
注意:无论是a++还是++a都等同于a=a+1,在表达式执行完毕后a的值都自增了1,无论是a–还是–a都等同于a=a-1,在表达式执行完毕后a的值都自减少1。
#include <stdio.h>
int main()
{
int x = 100;
printf("x=%d\n",++x); // 先运算,再取值,输出的 x = x + 1 = 101;
printf("x=%d\n",x++); // 先取值,再运算,输出的 x = 101 是计算前的值,计算后为 102;
printf("x=%d\n",--x); // 先运算,再取值,输出的 x = x - 1 = 101;
return 0;
}
3-5 赋值运算符
在前面的小节中接触过简单的赋值运算符“=”,如:
那么C语言中的赋值运算符又是什么呢?
C语言中赋值运算符分为简单赋值运算符和复合赋值运算符,之前我们已经接触过简单赋值运算符“=”号了,下面讲一下复合赋值运算符:
复合赋值运算符就是在简单赋值符“=”之前加上其它运算符构成,例如+=、-=、*=、/=、%=。
看一个小例子:
分析:定义整型变量a并赋值为3,a += 5;这个算式就等价于a = a+5; 将变量a和5相加之后再赋值给a
注意:复合运算符中运算符和等号之间是不存在空格的。
#include <stdio.h>
int main()
{
int x = 10;
int y = 10;
//使用简单赋值语句实现x乘以2。
x = x * 2;
//使用复合赋值语句实现y乘以2。
y *= 2;
printf("x=%d\n", x);
printf("y=%d\n", y);
return 0;
}
3-6 关系运算符
下面是C语言中的关系运算符:
关系表达式的值是“真”和“假”,在C程序用整数1和0表示。如:
其结果为:
注意:>=,<=,==,!=这种符号之间不能存在空格。
3-7 逻辑运算符
下面我们看一下C语言中的逻辑运算符:
逻辑运算的值也是有两种分别为“真”和“假”,C语言中用整型的1和0来表示。其求值规则如下:
- 与运算(&&)
参与运算的两个变量都为真时,结果才为真,否则为假。例如:5>=5 && 7>5 ,运算结果为真;
- 或运算(||)
参与运算的两个变量只要有一个为真,结果就为真。 两个量都为假时,结果为假。例如:5>=5||5>8,运算结果为真;
- 非运算(!)
参与运算的变量为真时,结果为假;参与运算量为假时,结果为真。例如:!(5>8),运算结果为真。
3-9 三目运算符
我们购物的时候经常会说如果这个物品大于多少钱就不买了,条件就是大于多少钱,结果就是不买了。
那么上面所说的能不能在C语言中表示出来呢?当然是可以了,不过C语言中,需要用到一个符号,这个符号就是三目运算符。
C语言中的三目运算符:“?:”,其格式为:
表达式1 ? 表达式2 : 表达式3;
执行过程是:
先判断表达式1的值是否为真,如果是真的话执行表达式2;如果是假的话执行表达式3。
用代码来写一下上面的例子:
3-10 运算符大比拼之优先级比较
问:优先级是神马?
答:优先级就是在运算中运算的先后顺序。
那么我们来看看我们学习的各种运算符号的顺序吧!
优先级别为1的优先级最高,优先级别为10的优先级别最低。
大家没必要去死记运算符的优先级顺序,记住最高优先级别的,在开发中就会无敌啦~来看一看下面的例子:
解析:C语言中运算符中最高等级的为(),因此执行过程为:
1、先计算a>3和a+3的结果,计算后算式为1*a-14%3;
2、再计算1*a和14%3的结果,计算后算式为11-2;
3、最后算出结果为9。