前言
赋值语句中如果赋值运算符两边的类型不一致,但都是数值型和字符型数据,则C语言允许赋值表达式右边的值类型自动转换为左边的变量的类型。
一、赋值表达式中类型转化
赋值表达式中赋值运算符左右的数据类型不一致,会自动转化,转化的原则:
- 实型赋值于整型,则舍去小数部分。
- 整型赋值于实型,数值不变,将以浮点形式存放,即增加小数点部分(小数点后面为零)。
- 字符型赋值于整型,由于字符型为一个字节,而整型为两个字节,故将字符的ASCII码值放到整型量的低八位中,高八位为0。
- 整型赋值于字符型,只把低八位赋值于字符量。
二、程序实例
代码如下:
#include <stdio.h>
void main()
{
int A,a,b=322;
float x,y=8.88;
char c1='k',c2;
A=y;
x=b;
a=c1;
c2=b;
printf("%d,%f,%d,%c",A,x,a,c2);
}
运行结果:
结果分析:
代码中A为整型,被赋予实型变量y的值8.88后只取整数8;x为实型,被赋予整型量b值322后增加了小数部分0。字符型量c1赋予a变量为整型,整型量b赋予c2后取其低八位成为字符型(b的低八位为01000010,即十进制66,按ASCII码对应于字符B)。
总结
以上就是今天要讲的内容,本文仅仅简单介绍了C语言中赋值运算符在运用时数据类型的转化应用。