2、C语言--数据转换&&运算符

2、C语言–数据转换

  1. what--------把表达式的运算结果强制转换为所需要的数据类型,称为强制转换。
  2. 自动转换的原则:
    1. 占用内存字节数小的(值域小)类型,向占用内存字节数多(值域大)的类型转换,以保证精度不降低。
    2. 转换方向:由低精度向高精度方向转换。
      在这里插入图片描述
      强制转换的原则: 在赋值语句中等号右边的类型自动转换为等号左边的类型;
      有些需要在变量前加转换类型符:(float)4;//把4转换为浮点类型4.000000

1.运算符 注意

  1. 单目运算符 ++;–
  2. 双目运算符 - + * /
  3. 三目运算符 ()?():()

2.关系运算符

关系运算符连接的表达式最终结构只有两个,真or假
一般返回结果使用int保持,如果为假则为0,为真则为1

位运算符

  1. & 按位与
  2. | 按位或
  3. ~ 按位取反
  4. ^ 按位异或;相异变成1,相同变成0

3.位移运算符

  1. << 左移;高位溢出,低位补0
    2 . >> 右移;高位补0,低位溢出

4.条件运算符

形式:A?B:C

先判断表达式A的结果,如果结果为真,则执行表达式B,如果表达式A为假,则执行表达式C。
相当于一个简单的if – else 语句
if(A)
{
B;
}
else
{
C;
}

5.符号运算符

格式:A = (B,C,D);

  1. 使用逗号隔开的表达式从左向右依次执行,最后一个表达式的值是整个运算的结果。
  2. 先运行表达式B,再运行表达式C,最后运行表达式D,最终变量A的值为表达式D的值。

代码演示:

	//1.3.8 道号运算符必须加括号
	int  e = 9, u = 1;
	int  f = (e += 1,u+=19,e+=u);
	printf("e = %d,u = %d,f = %d\n", e, u, f);

运行结果:
在这里插入图片描述

6. 自增自减

格式:a = b++; //b先自增1赋予a,b自身值不变
a = - -b; //b自身先自减1赋予a,自身值发生改变减1

	//1.3.9自增自减
	int i ,j=100;
	i = j++;
	printf("j = %d,i = %d\n", j, i);
	int a, b = 100;
	a = --b;
	printf("b = %d,a = %d\n", b, a);

运行结果:
在这里插入图片描述

6.逻辑运算符

  1. &&(与) 两边为真则表达式结果为真,否则都为假
  2. || (或)
  3. ! (非)

注意表达方式:10< s <100,在C语言中应该写成 a>10&&a<100

	int  f = 5,jf=0;
	int  gh = (f < 9) || ( jf = f + 5);
	printf("gh = %d,jf=%d\n", gh, jf);
	printf("==========================\n");
	  gh =  (jf = f + 5)||(f < 9) ;
	printf("gh = %d,jf=%d\n", gh, jf);
	//逻辑或的短路原则: 如果第一个表达式的结果为真,则整体表达式为真,其后面的表达式都不会被执行

``![在这里插入图片描述](https://img-blog.csdnimg.cn/c42ad6dbe7204982902e9ade38d5f550.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAZGFpbWHml6XluLg=,size_20,color_FFFFFF,t_70,g_se,x_16)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值