C语言学习笔记——类型转换与运算符的优先级

一、类型转换

自动类型转换:在程序运行的时候,低精度的数据会自动向高精度的数据进行这类型转换,数据的进度不会丢失

强制类型转换:有时候在我们运算的过程中,需要对数据进行短暂的类型转换,去进行运算,让数据更加精确

  • 自动类型转换:
  • 一般为 低精度 向 高精度 转换
  • (可按字节大小顺序记,有低精度到高精度的数据类型)
  • char - short - int - long - float -double .....
  •  
  • 强制类型转换:
  • 常应用于:指针,因为指针的类型不管如何转换,它的精度都是不会丢失的。
  • 当用于 高精度 向 低精度 强制转换时, 数据会丢失!
  • 如:float a = 3.14;     (int) a ->  a = 3 , 数据丢失!   
  •  
  • 判断输出类型的方法:
  • 若为 同精度 运算,则输出仍为同精度(强制转换除外)。如: int/int -> int 
  • 若为 不同精度 计算,则输出为更高的进度(强制转换除外)。如: int/float -> float

例:

自动类型转换 与 强制类型转换的 代码 与 输出结果 如图所示:

#include<stdio.h>

void main()
{
	//自动类型转换:
	printf("100/3 = %d\n", 100/3);
	printf("100/3.0 = %f\n", 100/3.0);

	//强制类型转换:
	printf("(float)100/3 = %f\n", (float)100/3);
	printf("(float)(100/3) = %f\n", (float)(100/3));
}

二、运算符优先级

运算符的一般优先级:

由高到低:算术运算符 -> 关系运算符 -> 逻辑运算符 ->赋值运算符

  1. 算术运算符:一般为 加减乘除、求余、自增、自减
  2. 移位运算符:左移(<<)、右移(>>)
  3. 关系运算符:一般为 大于、小于、大于等于、小于等于、等于、不等于
  4. 逻辑运算符:一般为 与(&&)、或(||)、按位异或(^)、非(!)【!的优先级比算术运算符还高】
  5. 条件运算符:?:
  6. 赋值运算符:一般为 赋值(=)、加减乘除后赋值(+=、-=、*=、/=)、取模后赋值(%=)【顺序:从右到左】
  7. 逗号运算符:优先级最低

注:sizeof 为长度运算符。

附上运算符优先级表:

 

  • 6
    点赞
  • 52
    收藏
  • 打赏
    打赏
  • 1
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:技术黑板 设计师:CSDN官方博客 返回首页
评论 1

打赏作者

不吃鱼的猫丿

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值