目录
C语言基础-常用的运算符
一,运算符简介
二,C语言的运算符分类
三,算术运算符
1)加减乘除
2)求余
3)自增,自减运算符。++ --
四,赋值运算符
1)简单赋值符和表达式
2)复合的赋值运算符
五,条件运算符
1)C语言中运算符和表达式数量很多。同时也正是因为这些丰富的运算符和表达式是的C语言功能十分完善,这也是C语言的主要特点之一。
2)C语言的运算符不仅具有不同的优先级,而且还具有结合性。在表达式中,各运算量参与运算的先后顺序不仅要遵守运算符优先级别的规定,还要受运算符结核性的制约,从此来确定该计算式是从左到右还是走右到左来进行计算。当然,这样也一定程度上曾加了学习C语言的难度。
1)算术运算符:用于各类数值运算。包括加(+),减(-),乘(*),除(/),求余(%),自增(++),自减(--)。
2)关系运算符:用于比较运算。包括大于(>),小于(<),等于(=),大于等于(>=),小于等于(<=)和不等于(!=)。
3)逻辑运算符:用于逻辑运算。包括与(&&),或(||),非(!)。
4)位操作运算符:参与运算的量,按照二进制位进行运算。包括位与(&),位或(|),位非(-),位异或(^),左移(<<),右移(>>)。
5)赋值运算符:用于赋值运算,分为简单赋值(=),符合算数赋值(+=,-=,*=,/=,%=)和复合位运算符(&=,|=,^=,>>=,<<=)三类。复合位运算符在基础中不太常用,常用的为前两类。
6)条件运算符:也是三目运算符,用于条件求值(?:)。
7)逗号运算符:用于把若干表达式组合成一个表达式(,)。
8)指针运算符:用于取内容(*)和取地址(&)。
9)求字节运算符:用于计算数据类型所占的字节数(sizeof)。
10)特殊运算符:有括号(),下标[],成员(-->,.)等
下面我就常用的运算符还进行代码演示,可以更加直观清楚的演示其作用。
#include
int main()
{
int a=3,b=4;
printf("a+b=%d\n",a+b);
printf("a-b=%d\n",a-b);
printf("a*b=%d\n",a*b);
printf("b/a=%d\n",b/a);
return 0;
}
需要注意的是除法/,当两侧都是整型时,结果为整型,如10/3=3而不是3.333......
% 注意求余两侧必须为整型,其他类型会出错。
#include
int main()
{
printf("%d\n",100%6);
return 0;
}
小插曲
#include
int main()
{
int a=3,b=4;
printf("b%a=%d\n",b%a);
printf("b%%a=%d\n",b%a);
return 0;
}
我用这个求余的时候,结果不对,后发现%a为转义字符,如果要求余,要%%a。
自增1运算符记为“++”,其功能时使变量的值自增1.
自减1运算符记为“--”,其功能是使变量值自减1.
自增1,自减1运算符均为单目运算符,都具有右结合性。可以有以下几种形式:
++i i自增1后再参与其他运算
--i i自减1后再参与其他运算
i++ i参与运算后,i的值再自增1
i-- i参与运算后,i的值再自减1
#include
int main()
{
int i = 5;
printf("%d\n",++i);
printf("%d\n",--i);
printf("%d\n",i++);
printf("%d\n",i--);
return 0;
}
简单赋值运算符记为“=”。由“=”连接的式子称为赋值表达式。其一般形式为:
变量=表达式
如: x=a a=5
万不可和“==”混为一谈。
“==”是判断是否相等,“=”才是赋值。
再赋值符号“=”之前加上其他二目运算符可以组成复合赋值符。(+=,-=,*=,/=,%=)
构成复合赋值表达式的一般形式为:
变量 双目运算符=表达式
等效于
变量=变量 运算符 表达式
a+=1 等效于 a=a+1
a*=2 等效于 a=a*2
下面我来写一个判断是否为偶数的程序来引用条件运算符和&取地址符号
#include
int main()
{
int n;
scanf("%d",&n);
(n%2==0)?printf("是偶数"):printf("不是偶数");
return 0;
}
再? :里,如果前面的判断条件为真,则执行?:之间的语句。反之相反。
那么,今天的学习就到此为止吧。