1.算数操作符
在c语言中如% / * + -等都是算数操作符,并且这些操作符都是双目操作符
(注:双目操作符是包含两个操作数的,位于操作数两边)
(1) +和-
+和-操作符是用来分别执行加法和减法运算的 以下代码是这两个操作符使用一个举例
#include <stdio.h>
int main()
{
printf("%d\n",7+4);
printf("%d|n",7-4);
return 0;
}
输出结果为11, 3
(2)*
*操作符是用来执行乘法运算的 以下代码是这两个操作符使用一个举例
#include <stdio.h>
int main()
{
int a=10;
int b=5;
float c=6.6;
float d=2.2;
int d1=a*b;
float d2=c*d
printf("%d %f",d1,d2)
}
d1 d2输出依次为50 ,14.520000
(3)%和/
%和/操作符是用来分别用来执行除法和求模运算的
在含%的表达式中计算结果是两个整数的余数,注意该操作符只能用于整数不能用于浮点数的计算
同时求模时结果的正负号由第一个操作数的正负号决定
include<stdio.h>
int main()
{printf("%d\n",6%4);
printf("%d\n"-6%4);
printf("%d\n"6%-4);
printf("%d\n"-6%-4);
return 0;
}
在该代码中输出依次是2, -2 ,2, -2
在含/的表达式中若操作数都为整数执行的是整数除法,结果若行含小数也只取整数部分 若操作符中一个及以上为浮点数则计算结果为浮点数
#include <stdio.h>
int main()
{ printf("%d",6/4);
printf("%f",6.0/4);
retrun 0;
}
输出结果为2, 2.5
2.赋值操作符
在变量创建的时候给一个值叫做变量初始化 之后再给值就是赋值
#include <stdio.h>
int main()
{
int a=1;//初始化
a=4;//赋值
retrun 0;
}
在赋值过程中是可连续的,称为连续赋值 还存在复合赋值,对一个数进行改变
#include <stdio.h>
int main()
{
int a=1;
int b=3;
int c=6;
c=a;
b=a+9;//连续赋值
a-=1;
a+=7;//复合赋值
retrun 0;
}
常用的复合赋值符有+= ,-=, >=,<=, !=,>>=,<<=
3.单目操作符
在表达式中只含有一个操作数的操作符是单目操作符
1.前置++与后置++
前置++在运算过程中遵循先++后使用 而后置++遵循先使用后++
2.前置--与后置--
前置--在运算过程中遵循先--后使用 而后置--遵循先使用后--
#include <stdio.h>
int main()
{
int a, b, c;
a = 5;//a赋值为5
c = ++a;// a=a+1=6 c=a=6
b = ++c, c++, ++a, a++;//b=7 c=8 a=8
b += a++ + c;//b=b+a++ +c=23 a=a+1=9 c=8
printf("a = %d b = %d c = %d\n:", a, b, c);
return 0;
}
输出a=9 b=23 c=8
3.+与-
这里+为正号,-为负号也都是单目操作符
4.关系操作符
在c语言中用于关系表达式中的运算符就被称为关系操作符
主要有< > >= <= == !=
注意事项
1.在这之中==与=的使用容易使用错误,切记需要判断时用==,初始化和赋值用=
如果在代码中=与==使用错误代码会不按正常逻辑运行
2.在关系操作符使用时不可连用 例如:100<=i<=200这种就是错误的,如果在if语句中无论输入什么值都能进入if语句 正确的应该是100<=i && i<=200 这里面的&&是逻辑与 在下面的逻辑操作符中会讲解
5.条件操作符
条件操作符也叫3目操作符,含有3个操作数 形式如下
exp1 ?exp2 : exp3
当exp1为真时exp2计算 若为假exp3计算
可用于简化优化代码
#include <stdio.h>
int a =0;
int b =0;
int c =0;
int main()
{ scanf("%d %d %d",a,b,c);
if(a>b)
{
printf("%d",a);
}
if(a<b)
{
printf("%d",c);
}
return 0;
}
优化后
#include <stdio.h>
int a =0;
int b =0;
int c =0;
int main()
{ scanf("%d %d %d",a,b,c);
int i= a>b ? a :c
printf("%d",m);
return 0;
}
6.逻辑操作符
主要有下面3个操作符
1. ! :逻辑取反运算符(改变单个表达式的真假)。
include <stdio.h>
int main()
{
int flag = 0;
if(!flag)
{
printf("hehe");
}
return 0;
}
如中flag为真 如果要在flag为假时输出hehe可以用以上代码表达
2.&& :逻辑与运算符,就是并且的意思(两侧的表达式都为真,则为真,否则为假)。
#include <stdio.h>
int main()
{
int i =0;
for(i=100;i>=100 && i<=200;i++)//i初始化值为100 判断部分使大于100且小于200的可进入循环
{
printf("%d",i);//打印i
}
return 0;
}
3. || :逻辑或运算符,就是或者的意思(两侧⾄少有⼀个表达式为真,则为真,否则为假)
#include <stdio.h>
int main()
{
int i =0;
for(i=100;i<=100 && i>=200;i++)//i初始化值为100 判断部分使小于100或者大于200的可进入循环
{
printf("%d",i);//打印i
}
return 0;
}
在逻辑与和逻辑或操作符中还存在短路现象 以下以一段代码说明
include <stdio.h>
int main()
{
int i = 0, a = 0, b = 2, c = 3, d = 4;
i = (a++ && ++b && d++);//a++=0 &&表达式第一部分为假剩下部分不执行
printf("i = %d a = %d\n b = %d\n c = %d\nd = %d\n", i, a, b, c, d);
//i=0 a=a+1=1 b=2 c=3 d=4
return 0;
}
include <stdio.h>
int main()
{
int i = 0, a = 0, b = 2, c = 3, d = 4;
i = a++||++b||d++;//a++=0 ||表达式的第一部分为假 继续执行之后的部分 ++b=3为真停止
printf("i = %d a = %d\n b = %d\n c = %d\nd = %d\n", i, a, b, c, d);
//i=1 a=1 b=3 c=3 d=4
return 0;
}