#include<stdio.h>
char a()
{
return true; //true的值为1,是int型的;当返回值为char,此处发生截断 ;只取int中的一个字节返回。
}
int main()
{
int x;
x=a();
printf("%d",x);//输出为1
}
问题分析:
int 是多字节整型,char为一个字节整型。
char转换成int没问题;
而int转换成char这造成精度损失,只从低权值截取1个字节进行转换。
#include<stdio.h>
char a()
{
return true; //true的值为1,是int型的;当返回值为char,此处发生截断 ;只取int中的一个字节返回。
}
int main()
{
int x;
x=a();
printf("%d",x);//输出为1
}
问题分析:
int 是多字节整型,char为一个字节整型。
char转换成int没问题;
而int转换成char这造成精度损失,只从低权值截取1个字节进行转换。