在写代码的过程中,忽然需要对一个数据的数据类型进行转换,如:
int a=3;
如果之后需要对a做除法,显然a/5得出的是 0 。
如果代码很多的话再去改定义就太麻烦了。
所以就有了强制转化 数据类型!!
int a = 3;
printf("%d",a/5); // 这里输出的是 0
printf("%.1lf",(double)a/5); // 这里输出的是 0.6
// 并没有改变a的数据类型
因为数据类型转变 ,所以要用 %lf。
那么是不是也可以把整形转换为字符型呢?
int b = 97;
printf("%c",(char)b); // 这样输出的是 a ,也就是97是a的阿斯克码。
// 如此说来 不需要再加(char)
// printf("%c",b) 进行格式化输出 a
那么思考
第一个例子是不是也不用加(double)呢??如:
int a = 3;
printf("%lf",a/5); // 虽然编译没报错,但答案是错误的。
所以,整形,浮点型之间的格式化输出,要加上(int) 或(double)
而一个整形转换为字符型,会输出其阿斯克码值对应的字符!!!不用加(char)
!!
那么怎样实现把整形转换成字符串型呢???
用 sprintf()
以后专门研究它的用法 ,这里不多说。