数据类型 - 因类型引发的问题或错误
时间:2010-08-08 来源:wangmanlivsli
本文来自草根编程网:http://www.caogenbiancheng.com/?action-viewnews-itemid-93
1. 运算结果超出类型大小:
#include
#include
int main(void)
{
short s1 = SHRT_MAX;
short s2 = SHRT_MAX;
short num1;
int num2;
/* 不会是期望的值 */
num1 = s1 + s2;
printf("%dn",num1);
/* 这样可以了 */
num2 = s1 + s2;
printf("%dn",num2);
getchar();
return 0;
}
2. 把大的赋给小的:
#include
#include
int main(void)
{
unsigned int n1=INT_MAX;
unsigned char n2;
unsigned short n3;
n2 = n1;
n3 = n1;
printf("%u,%u,%un",n1,n2,n3);
printf("%#X,%#X,%#Xnn",n1,n2,n3);
n1 = LLONG_MAX;
printf("%lld,%un",LLONG_MAX,n1);
printf("%#llx,%#xn",LLONG_MAX,n1);
getchar();
return 0;
}
3. 把浮点数赋给整数:
#include
int main(void)
{
double pi = 3.14159265;
int i;
/* 只会留下整数部分 */
i = pi;
printf("%dn",i);
/* 并且不会四舍五入 */
i = 3.6;
printf("%dn",i);
getchar();
return 0;
}