栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言运算符与表达式

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言运算符与表达式

运算符与表达式
  • 一、表达式
  • 二、赋值运算符与赋值表达式
    • 1、变量赋初值
      • a、常数赋值给变量
      • b、赋值表达式为变量赋值
    • 2、自动类型转换
    • 3、强制类型转换
  • 三、算术运算符与算术表达式
    • 1、算术运算符
    • 2、算术表达式
    • 3、优先级和结合性
    • 4、自增 自减运算符
  • 四、关系运算符与关系表达式
    • 1、关系运算符
    • 2、关系表达式
  • 五、逻辑运算符与逻辑表达式
    • 1、逻辑运算符
    • 2、逻辑表达式
  • 六、位逻辑运算符与为逻辑表达式
  • 七、逗号运算符和逗号表达式
  • 八、复合赋值运算符
  • 十、实践与练习

一、表达式

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

#include
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
int main()
{
	float a=100.1;   //单精度类型
	int i=a;        //转换为整型
	
	printf("%d",i);  //结果为100
}

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

3、强制类型转换

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

#include
int main()
{
	char a;  //字符型 
	short b;  //短整型 
	int c;   //整型 
	float d=70001;  //单精度型 
	
	 
	a=(char)d;
	b=(short)d;
	c=(int)d;
	
	
	printf("%cn",a);  //结果为 q
	printf("%dn",b);  //结果为 4465
	printf("%d",c);    //结果为 70001
}

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

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

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

符号功能
+单目正
-单目负
+
-
*
/
%取模(两数相除得到的余数)
2、算术表达式

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

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

	b=100/a;
	printf("八包辣条需要:%d",b);
}
3、优先级和结合性

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

4、自增 自减运算符
符号说明
++ a(- -a)先+(-)1再赋值
a++(- -a)先赋值再+(-)1
#include
int main()
{
	int a=2,b=2,c=2,d=2;
	a=++a;
	printf("++a的值:%dn",a);  //先+1再赋值 
	
	b=b++;
	printf("++b的值:%dn",b);  //先赋值再加+1
	
	c=--c;
	printf("--c的值:%dn",c);  //先-1再赋值
	
	d=d--;
	printf("d--的值:%dn",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
int main()
{
	int a=0,b=2;                       //a为假,b为真 
	printf("a&&b的真假:%dn",a&&b);    //逻辑与    结果为 0
	printf("a||b的真假:%dn",a||b);    //逻辑非    结果为 1
	printf("a&&b的真假:%dn",!a&&b);  //单目逻辑非    结果为 1              
	printf("!!a的真假:%d",!!a);        //转换成逻辑值     结果为 0
}
六、位逻辑运算符与为逻辑表达式

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

位逻辑运算符号说明
&位逻辑与
|位逻辑或
^位逻辑非
~取补
七、逗号运算符和逗号表达式

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

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

#include
int main()
{
	int a,b,c,num;
	a=1;
	b=2;
	c=3;
	num=0;
	
	num=a+b,a+c,c-a;               
	printf("num的值为:%dn",num);  //结果为 3
	
	num=(a+b,a+c,c-a);
	printf("num的值为:%dn",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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/433442.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号