C语言运算符与表达式

C语言运算符与表达式,第1张

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5115470.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存