c语言:2.3.3
#include <stdio.h> //赋值时类型原则:赋值号右边表达式值 变量 常量的类型最好与左边变量的类型相一致 //二者不相同时,C编译系统会自动实现数据类型转换 //转换原则:将赋值号右边的表达式值的类型转换成左边变量相同的类型后再赋值 //当左边变量的数据类型比右边表达式值的类型长时,转换后的值不会改变精度或准确度,只是改变值的表示形式 //当右边表达式值的类型比左边变量的类型长时,转换后的结果会对右边的数据进行截取,仅取出与左边变量类型相同的长度,这意味着会丢失高位字节或高位字,可能会引起精度降低或出现错误的结果 main() { int bla;long blb;char blc; bla=100;blb=10L;blc=100; printf("%d,%d,%d,%d\n",__LINE__,sizeof(bla),sizeof(blb),sizeof(blc)); printf("%d,%d,%c\n",bla,blb,blc); bla=blb;//long类型变量blb的值转换为int类型后再赋值给bla printf("%d,%d,%c\n",bla,blb,blc); blb=bla;//int类型变量bla的值转换为long类型后再赋值给blb printf("%d,%d,%c\n",bla,blb,blc); blb=bla+blc;//int类型bla+blc的值转换成long类型后再赋值给blb printf("%d,%d,%c\n",bla,blb,blc); printf("%d\n",sizeof(1)); printf("%d\n",sizeof(0.1)); printf("%f\n",1); printf("%f\n",(1+2*2+3)); printf("%d\n",1+3/2); printf("%f\n",1/3*3); printf("%d\n",1/3*3); getchar(); }