提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
一位学习C语言的小白,有错误请私信或评论。
本文主要介绍C语言运算符~
一、算数运算符
C语言提供的算数运算符: + 、- 、 * 、 / 、% 、++ 如:(float、double 不能取余)
运算符 | 功能说明 | 举例 |
---|---|---|
+ | 加,一目取正 | a+b |
- | 减,一目取负 | a-b |
* | 乘法 | a*b |
/ | 除法 | a/b |
% | 取模或求余 | a%b |
++ | 增1 | a++,++a |
– | 减1 | a- -,- -a |
代码:
//整形加减乘除
int a = 10, b = 3,c;
c = a + b;
printf("%d\n",c);
c = a - b;
printf("%d\n",c);
c = a * b;
printf("%d\n",c);
c = a / b;
printf("%d\n",c);
c = a % b;
printf("%d\n",c);
//浮点数加减
float a = 10, b = 3,c;
c = a + b;
printf("%f\n",c);
c = a - b;
printf("%f\n",c);
c = a * b;
printf("%f\n",c);
c = a / b;
printf("%f\n",c);
/*c = a % b;
printf("%d\n",c); //float、double不能取余
二、关系运算符
C语言的关系运算符如下:
例如:
int a=5,b=6;
a>(b-1) 结果为0
(a+1)==b 结果为1
a>=(b-2) 结果为1
a<100 结果为1
(a+3)<=b 结果为0
代码:
int main()
{
int a = 10,b = 9;
if(a >=(b-1))
{
printf("ture");
}
else
{
printf("flase");
}
return 0;
}
三、逻辑运算符
运算符 | 功能说明 | 举例 |
---|---|---|
! | 逻辑反 | !(x ==0) |
&& | 逻辑与 | x>0&&y<10 |
II | 逻辑或 | y<10IIx>5 |
3.1逻辑运算符 “!” 运算符的运算律如下:
int k = 8;
!(k ==0) //结果为1
!((k-8)==0) //结果为0
!(k<=0) //结果为1
3.2逻辑与 “&&” 运算符的运算规律如下:短路特性-逢0截止
代码:
int a = 8,b = 9;
if((a+1)>b && b++)//逢0截止
printf("true\n");
else
printf("false\n");
printf("%d,%d",a,b);
return 0;
3.3逻辑或 ”||“ 运算符的运算规律如下:短路-逢1截止
代码:
int a = 8,b = 9;
if((a+1)>=b || b++)//逢1截止
printf("true\n");
else
printf("false\n");
printf("%d,%d",a,b);
四、位运算
C语言的位运算如下:
取反~运算如下:
代码:
unsigned char a = 0x17,b = 1;
b=~a;
printf("%#x",b);
位运算与 ”&“ 运算符的运算规律如下:
代码:
unsigned char x = 0126 , y = 0xac,z;
z = x & y;
printf("%#x",z);
位运算与 ”| 运算符的运算规律如下:
代码:
unsigned char x = 076, y = 0x89,z;
z = x | y;
printf("%#x",z);
位逻辑异或”^“运算符的运算规律如下:相同为假,不同为真
代码:
unsigned char x=75,y=0173,z;
z = x^y;
printf("%#x",z);
位运算的一般形式
<运算量> <运算量><表达式>其中 :
<运算量>必须为整形结果数值;
<运算符>为左移(<<)或右移(>>)运算符;
<表达式>也必须为整形结果数值;
五、赋值运算符
赋值运算符为”=“,其运算的一般形式如下:
<左值表达式> = <右值表达式>
赋值复合运算符其运算的一般形式如下:
<变量> <操作符> = <表达式>
C语言的赋值复合运算符如下:
代码:
#include <stdio.h>
int main()
{
int count,sum;
count = 0,sum = 0;
while(count++ <100)
{
sum+=count;// sum = sum + count;
}
printf("sum = %d\n",sum);
return 0;
}
六、 特殊运算符
6.1条件运算符
”?: “是三目运算符,其运算的一般形式是:
<表达式1 >?<表达式2>:<表达式3>
代码:
int x = 70,y = 25;
y = ++x > 70 ? 100 : 0;
printf("%d\n%d\n",x,y);
6.2 逗号运算符
逗号运算符的值等于最后一个的值
代码:
float x = 10.5, y = 1.8,z = 0;
z = (x += 5,y = x + 0.2);
printf("x= %f y = %f z = %f\n\n",x,y,z);
z = (x = y = 5, x += 1);
printf("x= %f y = %f z = %f\n\n",x,y,z);
z = (x = 5,y = 6,x + y);
printf("x= %f y = %f z = %f\n\n",x,y,z);
z = (z = 8,x = 5,y = 3);
printf("x= %f y = %f z = %f\n\n",x,y,z);
6.3sizeof运算符
运算符的一般形式:sizeof(类型或变量名)
注意:它只针对数据类型,而不针对变量
例如:
sizeof(double)
sizeof(long)
6.4C运算符的优先级
代码:
int x =1,y=0,z=0;
x++ && y++ || ++z ; //结果为 1(2 1 1)
!(x+1 >0) && y++ || ++z;//结果为1 (1 0 1)
x+=y==z,y=x+2,z = x+y+z>0;//x为2,y为4
总结
C语言运算符种类有很多,要注意的点也很多
如:
1.float、double不能取余;
2.C语言中等于的符号不是=而是==;
3.++在后先运算后+1;
4.++在前先+1后运算;
5.逻辑与只要有一个变量为0运算式整个为0---逢0截止;
6.逻辑或只要有一个变量为1运算式整个为1---逢1截止;
7.逗号运算符的值有最后一行表达式决定