c语言强制转换数据类型

来源:互联网 发布:维多利亚2新手国家知乎 编辑:程序博客网 时间:2024/05/16 17:14

在写代码的过程中,忽然需要对一个数据的数据类型进行转换,如:

int a=3;

如果之后需要对a做除法,显然a/5得出的是 0 。

如果代码很多的话再去改定义就太麻烦了。

所以就有了强制转化  数据类型!!

int a = 3;printf("%d",a/5);                 // 这里输出的是  0printf("%.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()

以后专门研究它的用法 ,这里不多说。