运算符与表达式
运算符:就是参与运算的符号,与运算符一起运算的变量,常量称之为操作数
表达式:是变量或者直接量与运算符组成的式子,表达式会有一个计算的结果,称之为表达式的值
运算符与表达式的概念
在应用程序中,经常会对数据进行运算,所以勒C语言提供了多种类型的运算符,即专门用于告诉程序执行特定运算或逻辑操作的符号 有下面常见的七大类:
运算符类型 | 作用 |
---|
算数运算符 | 用于处理四则运算 | 关系运算符 | 用于表达式的比较,并返回一个真值或假值 | 逻辑运算符 | 用于根据表达式的值返回真值或假值 | 赋值运算符 | 用于将表达式的值赋值给变量 | 条件运算符 | 用于处理条件判断 | 位运算符 | 用于处理数据的位运算 | sizeof运算符 | 用于求字节长度 |
算术运算符与算术表达式
C语言中的算数运算符就是用来处理四则运算的符号 我们直接上图🚗🚓🚕🛺🚙🛻
运算符 | 名称 | 实列 | 运算结果 |
---|
+ | 正号 | +3 | 3 | - | 负号 | a=4;-a; | -4 | + | 加号 | 1+1 | 2 | - | 减号 | 2-1 | 1 | * | 乘 | 9*9 | 81 | / | 除 | 6/3 | 2 | % | 求余数 | 6%5 | 1 | ++ | 自增(前) | a=2;b=++a; | b=3;a=3; | ++ | 自减(前) | a=2;b=- -a; | b=1;a=1; | – | 自增(后) | a=2;b=a++; | b=2;a=3; | – | 自减(后) | a=2;b=a- - | b=2;a=1; |
关于自增,自减我们一定要注意: (+号在前)++a 表示a自增后在参与其他运算 (-号在前) - -a 表示a自减后在参与其他运算 (+号在后)a++ 表示参与运算后a的值在自增1 (-号在后)- - ab 表示参与运算后a的值在自减1
算数表达式 使用算数运算符连接起来的表达式称为算数表达式。 上代码:
#include<stdio.h>
int main()
{
int a,b,c,x,y,z;
a=1;
b=2;
c=3;
printf("%d\n",a+b);
printf("自增(前):%d\n" ,++a);
printf("自增(后):%d\n",a++);
printf("此时a的值:%d\n",a);
printf("自减(后):%d\n",b--);
printf("自减(前):%d\n",--b);
printf("自减(前):%d\n",--c);
printf("求余的值为:%d\n",7%5);
}
3
自增(前):2
自增(后):2
此时a的值:3
自减(后):2
自减(前):0
自减(前):2
求余的值为:2
关系运算符与关系表达式
判断两个数据关系的运算符就叫做关系运算符,也称为比较运算符
运算符 | 运算 | 列子 | 结果 |
---|
== | 相等于 | 1==2 | 0(假) | != | 不等于 | 1!=2 | 1(真) | < | 小于 | 1<2 | 1(真) | > | 大于 | 1>2 | 0(假) | <= | 小于等于 | 1<=2 | 1(真) | >= | 大于等于 | 1>=2 | 0(假) |
关系运算符属于双目运算符,他们在运算时需要两个变量,如a>b 关系表达式 由关系运算符连接起来的表达式称为关系表达式
#include<stdio.h>
main()
{
int x,y,z;
int max(int a,int b);
printf("输入两个整数,判断大小:");
scanf("%d\n %d",&x,&y);
z=max(x,y);
printf("最大数是: %d \n",z);
}
int max(int a,int b)
{
if (a>b) return a;else return b;
}
逻辑运算符与逻辑表达式
逻辑运算符用于判断复合条件的真假,其结果仍(真)或(假)
运算符 | 名称 | 列子 | 结果 |
---|
&& | 与 | a&&b | 如果a和b都为真,其结果为真,否则为假 | ! | 非 | !a | 如果a为假,!a为真,否则为假 | II | 或 | aIIb | 如果a和b有一个或者一个以上为真,则为真,否则为假 |
逻辑表达式 由逻辑运算符连接起来的表达式称为逻辑表达式 代码是在博主新垣结衣的老婆看到的
#include<stdio.h>
int main()
{
int age=0;
int height=0;
int sc=0;
int yz=0;
printf("请输入年龄、身高、身材(1-火辣;2-普通;3-飞机场)(用空格隔开):");
scanf("%d %d %d",&age,&height,&sc);
printf("请输入颜值(1-漂亮;2-一般;3-歪瓜裂枣(翠花)):");
scanf("%d",&yz);
if ( ( (age >= 18) && (age <= 30) ) &&
( (height >= 165) && (height <= 175) ) &&
两个都必须为真
( (sc == 1) ) &&
( (yz == 1) || (yz == 2) ) )
{
printf("超女选秀合格,送往后宫。\n");
}
else
{
printf("超女选秀不合格,发放五两银子后送回家。\n");
}
}
赋值运算符与赋值表达式
赋值运算符的作用是将常量,变量或表达式的值赋给某一个变量
运算符 | 名称 | 列子 | 结果 |
---|
= | 赋值 | a=3;b=2; | a=3;b=2; | += | 加等于 | a=3;b=2;a+=b; | a=5;b=2 | -= | 减等于 | a=3;b=2;a-=b | a=1;b=2 | *= | 乘等于 | a=3;b=2;a*=b; | a=6;b=2 | /= | 除等于 | a=3;b=2;a/=b | a=1;b=2 | %= | 模等于(求余) | a=3;b=2;a%=b; | a=1;b=2 |
a+=b ----------- a=a+b a-=b ------------a=a-b
#include<stdio.h>
int main()
{
int a=5;
int b=(a=5);
printf("%d\n",b);
int x,y,z;
x=y=z=6;
printf("老铁:%d%d%d\n",x,y,z);
int d=1;
d+=1313;
printf("%d",d);
}
5
老铁:666
1314
条件运算符与条件表达式
当编写程序时,往往会遇到条件判断 例如:判断a>b,当a>b成立时执行某一个操作,当a>b不成立时执行另外一个操作
表达式1? 表达式2 : 表达式3
#include<stdio.h>
int main()
{
int a = 10;
int b = 20;
int max = 0;
max = (a > b ? a : b);
return 0;
}
位运算符
位运算符位( bit ) 是计算机中表示信息的最小单位,一般用 0和 1表示。位运算符是对其操作数按其二进制形式逐位进行运算。
sizeof运算符
C语言中提供了sizeof运算符,获取某一数据或者数据类型在内存中所占的字节数
格式
sizeof(类型说明符)
sizeof 表达式
#include<stdio.h>
typedef struct Worke
{
char name[10];
int age;
long ID;
float height;
double weight;
}worker_t;
int main()
{
printf("char :%lu\n", sizeof( char));
printf("int :%lu\n", sizeof(int));
printf("long :%lu\n", sizeof(long));
printf("float :%lu\n", sizeof(float));
printf("double :%lu\n", sizeof(double));
printf("worker_t:%lu\n", sizeof(worker_t));
printf("1+2 :%lu\n", sizeof(1+ 2));
printf("1+2.5 :%lu\n", sizeof(1+2.5));
printf("\n");
return 0;
}
char :1
int :4
long :4
float :4
double :8
worker_t:32
1+2 :4
1+2.5 :8
运算优先级
C语言的运算符包括单目运算符、双目运算符、三目运算符,优先级如下:
- 第1优先级:各种括括号,如()、[]等、成员运算符 . ;
- 第2优先级:所有单目运算符,如++、–、!、~等;
- 第3优先级(算数运算符):乘法运算符*、除法运算符/、求余运算符%
- 第4优先级(算数运算符):加法运算符+、减法运算符-;
- 第5优先级(移位运算符):移位运算符<<、>>;
- 第6优先级(条件运算符):大于运算符>、大于等于运算符>=、小于运算符<、小于等于运算符<=;
- 第7优先级(条件运算符):等于运算符==、不等于运算符!=;
- 第8优先级(按位运算符):按位与运算符&;
- 第9优先级(按位运算符):按位异或运算符^;
- 第10优先级(按位运算符):按位或运算符|;
- 第11优先级(逻辑与运算符):逻辑与运算符&&;
- 第12优先级逻辑与运算符:逻辑或运算符||;
- 第13优先级:三目条件运算符 ?: ;
- 第14优先级:各种赋值运算符,如=、+=、-=、*=、/= 等;
- 第15优先级:逗号运算, 。
算数运算符>移位运算符>条件运算符>按位运算符>逻辑运算符>赋值
#include <stdio.h>
main() {
int a = 20;
int b = 10;
int c = 15;
int d = 5;
int e;
e = (a + b) * c / d;
printf("Value of (a + b) * c / d is : %d\n", e );
e = ((a + b) * c) / d;
printf("Value of ((a + b) * c) / d is : %d\n" , e );
e = (a + b) * (c / d);
printf("Value of (a + b) * (c / d) is : %d\n", e );
e = a + (b * c) / d;
printf("Value of a + (b * c) / d is : %d\n" , e );
return 0;}
Value of (a + b) * c / d is : 90
Value of ((a + b) * c) / d is : 90
Value of (a + b) * (c / d) is : 90
Value of a + (b * c) / d is : 50
从现在做起,坚持下去,一天进步一小点,不久的将来,你会感谢曾经努力的你! |
如果又出错的,请各位友友指正。
新人报到,各位友友们,给我个三联(点赞,关注,收藏)
|