3.9.2 赋值表达式

赋值表达式是指,由赋值运算符“=”将一个变量和一个常量或者表达式连接起来的式子。赋值表达式的一般形式介绍如下。


<变量><赋值运算符><表达式>


例如,“a=27”就是一个简单的赋值表达式,表示将常量27赋值给变量a。赋值表达式在执行时,首先求解赋值运算符右边的表达式的值,然后将该值赋给左边的变量。赋值表达式的程序示例如下。


include<stdio.h>//头文件

void main()//主函数

{

int i,j;//声明变量

char a,b;

float f;

i=12;//赋值

j=i-5;

a=‘A’;//变量赋值

b=a+1;

f=17.5/2;

printf(“i=%d\nj=%d\n”,i,j);//输出结果

printf(“a=%c\nb=%c\n”,a,b);//输出结果

printf(“f=%f\n”,f);//输出结果

}


该程序可在KeilµVision3集成开发环境中运行,执行结果如下。


i=12

j=7

a=A

b=B

f=8.750000


赋值语句比较简单,读者可以自行分析其运行结果。在C51语言中使用赋值表达式时,要注意数据类型的转换。数据类型转换是指不同类型的变量混用时,不同类型之间的转化。赋值表达式中类型转换的规则是等号右边的值转换为等号左边的值所属的类型。程序示例如下。


include<stdio.h>//头文件

void main()//主函数

{

int i;//声明变量

float f;

i=5;

f=5*2;//赋值

printf(“f=%f\n”,f);//输出结果

f=i/2;//i/2的值赋值给f

printf(“f=%f\n”,f);//输出结果

f=i/2.0;//i/2.0的值赋值给f

printf(“f=%f\n”,f);//输出结果

f=(float)i/2;//使用强制类型转换

printf(“f=%f\n”,f);//输出结果

}


该程序可在KeilµVision3集成开发环境中运行,执行结果如下。


f=10.000000

f=2.000000

f=2.500000

f=2.500000


本例中,5*2的值为整型数据,而f为浮点型变量,因此,赋值时自动转换为浮点型数据。i/2即5/2按照除法的运算规则,除不尽时取整数部分,且等式左边的f为浮点型变量,因此f=2.000000。而对于i/2.0即5/2.0,操作数2.0为浮点型,因此计算的结果为2.500000,保留了完整的结果。如果操作数均为整型数据,则可使用强制类型转换(float)i/2,计算的结果为2.500000,同样可以保留结果的完整性。