C语言运算符与表达式

一、表达式

1、是C语言的主体
2、由操作符和操作数组成
3、又有简单表达式(只有一个操作符)和复杂表达式(两个或两个以上操作符)
4、表达式放在赋值语句的右侧

#include<stdio.h>
int main()
{
	int a,b,c;   //声明变量  使用逗号分隔变量
	a=10;       //变量赋值
	b=3;       
	
	c=a-b+1;     //表达式
	printf("c的值为:%d",c);  //结果为 8  逗号分隔参数  逗号也可作为分割表达式
}

二、赋值运算符与赋值表达式

关于赋值这里容易理解,不用讲太多

1、变量赋初值

a、常数赋值给变量

语法:类型 变量名=常数;

int a=100;

b、赋值表达式为变量赋值

语法:类型 变量名=表达式;

int num=a+b*3;

2、自动类型转换

就是不同数值类型进行转换
例:单精度类型(float)转换为整数类型(int)

#include<stdio.h>
int main()
{
	float a=100.1;   //单精度类型
	int i=a;        //转换为整型
	
	printf("%d",i);  //结果为100
}

有些编译器遇到这种情况会发出警告

3、强制类型转换

对于发出警告的编译器可使用强制类型进行转换

#include<stdio.h>
int main()
{
	char a;  //字符型 
	short b;  //短整型 
	int c;   //整型 
	float d=70001;  //单精度型 
	
	/*强制转换赋值*/ 
	a=(char)d;
	b=(short)d;
	c=(int)d;
	
	/*输出*/
	printf("%c\n",a);  //结果为 q
	printf("%d\n",b);  //结果为 4465
	printf("%d",c);    //结果为 70001
}

由高级别向低级别转换可能会出现数据丢失

三、算术运算符与算术表达式

1、算术运算符

它包括两个单目运算符(正和负)和五个双目运算符(加、减、乘、除、取模)

符号功能
+单目正
-单目负
+
-
*
/
%取模(两数相除得到的余数)

2、算术表达式

我一百花完买辣条,求辣条单价(数量自取)

#include<stdio.h>
int main()
{
	int a,b;  //定义辣条的数量和单价 
	printf("请输入数量:");
	scanf("%d",&a);

	b=100/a;
	printf("八包辣条需要:%d",b);
}

3、优先级和结合性

优先级就不多介绍
乘、除、取模的优先级大于加、减
优先级相同就“自左向右”运算
若先加减再乘除可以用括号()

4、自增 自减运算符

符号说明
++ a(- -a)先+(-)1再赋值
a++(- -a)先赋值再+(-)1
#include<stdio.h>
int main()
{
	int a=2,b=2,c=2,d=2;
	a=++a;
	printf("++a的值:%d\n",a);  //先+1再赋值 
	
	b=b++;
	printf("++b的值:%d\n",b);  //先赋值再加+1
	
	c=--c;
	printf("--c的值:%d\n",c);  //先-1再赋值
	
	d=d--;
	printf("d--的值:%d\n",d);  //先赋值再-1 
}

在这里插入图片描述

四、关系运算符与关系表达式

1、关系运算符

符号功能
>大于
<小于
==等于
!=不等于
>=大于等于
<=小于等于

2、关系表达式

在编程中对于两值的比较,返回的值为真值(true(1))或者假值(false(0))

表达式的值非零为真
零是假值
这里用到if语句,所以不多讲,后面会讲

五、逻辑运算符与逻辑表达式

1、逻辑运算符

符号功能
&&逻辑与
||逻辑或
!单目逻辑非

逻辑与&&和逻辑或||都是双目运算符

2、逻辑表达式

	a=b&&c;  //b和c有一个假就为假
	a=b||c;  //b和c有一个为真就为真
	a=!b;   //b为真就是假  b为假就是真
	a=!!b;   //转换成逻辑值
#include<stdio.h>
int main()
{
	int a=0,b=2;                       //a为假,b为真 
	printf("a&&b的真假:%d\n",a&&b);    //逻辑与    结果为 0
	printf("a||b的真假:%d\n",a||b);    //逻辑非    结果为 1
	printf("a&&b的真假:%d\n",!a&&b);  //单目逻辑非    结果为 1              
	printf("!!a的真假:%d",!!a);        //转换成逻辑值     结果为 0
}

六、位逻辑运算符与为逻辑表达式

位逻辑运算符可实现位的设置、清零取反和取补

位逻辑运算符号说明
&位逻辑与
|位逻辑或
^位逻辑非
~取补

七、逗号运算符和逗号表达式

C语言中可以用逗号将表达式分隔开

a:运算的优先级大于逗号
所以先计算a+b
b:若先算逗号,则使用括号
算出c-a

#include<stdio.h>
int main()
{
	int a,b,c,num;
	a=1;
	b=2;
	c=3;
	num=0;
	
	num=a+b,a+c,c-a;               
	printf("num的值为:%d\n",num);  //结果为 3
	
	num=(a+b,a+c,c-a);
	printf("num的值为:%d\n",num);  //结果为 2
}

八、复合赋值运算符

它就是一种表达式的缩写,让表达式更简单

	num=num+1;
	num+=1;     //这是 num=num+1转变的

	num=mum*a;
	num*=a;    //这是 num=mum*a转变的

十、实践与练习

1、使用复合运算符计算a+=a*=a/=a-6 (a为整数)
2、定义一个函数,赋值为10,依次按后缀自加——前缀自加——后缀自减——前缀自减,输出每次结果

习题答案:https://dxydjrxl.lanzoui.com/ipct0w86d4d

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值