类型的转换-C语言

本文通过示例阐述了C语言中不同类型之间的转换,如char到字符、整数提升以及强制类型转换,重点讲解了算术转换规则,包括隐式转换和整数提升对运算的影响。
摘要由CSDN通过智能技术生成

赋值类型转换

直接举例来说:

当不为a加上‘’时,char类型直接将a的值转化为字符格式

int main()
{
   	int i=17;
	int a=9;
   	char c;
	c=a;
   	float sum;
   	sum=i+c;
   	printf("Value of sum : %f\n", sum );
 
}

Value of sum : 26.000000

 当a加上‘’时,查找a的ascll码然后将相应字符赋值给c

#include <stdio.h>
 
int main()
{
   	int i=17;
	int a=9;
   	char c;
	c='a';
   	float sum;
   	sum=i+c;
   	printf("Value of sum : %f\n", sum );
 
}

Value of sum : 114.000000

强制类型转换 

#include <stdio.h>
 
int main()
{
   int sum = 17, count = 5;
   double mean;
 
   mean = (double) sum / count;
   printf("Value of mean : %f\n", mean );
 
}

Value of mean : 3.400000 

 这里要注意的是强制类型转换运算符的优先级大于除法,因此 sum 的值首先被转换为 double 型,然后除以 count,得到一个类型为 double 的值。

整数提升

整数提升是指把小于 int 或 unsigned int 的整数类型转换为 int 或 unsigned int 的过程。请看下面的实例,在 int 中添加一个字符:

#include <stdio.h>
 
int main()
{
   int  i = 17;
   char c = 'c'; /* ascii 值是 99 */
   int sum;
 
   sum = i + c;
   printf("Value of sum : %d\n", sum );
 
}

Value of sum : 116

常用的算术转换

常用的算术转换是隐式地把值强制转换为相同的类型。编译器首先执行整数提升,如果操作数类型不同,则它们会被转换为下列层次中出现的最高层次的类型:

Usual Arithmetic Conversion

对于 char 和 short 类型,进行运算时将会被隐式转换为 int 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值