【第一篇博客】研究下:C语言中的强制类型转换

来源:互联网 发布:松江主机编程 编辑:程序博客网 时间:2024/06/05 12:46

强制类型转换的探究

    这是我在CSDN平台上发表的第一篇博客,定有不少疏漏和错误,还请各位大牛指正!谢谢微笑

     我在是用c语言的时候,常常会遇到需要将不同类型进行转换的情况,在我不知道有强制类型转换的时候,很多问题还是非常的棘手,今天我才知道有这样的用法(学业不精,让大家见笑了),如获至宝。那我就来研究研究强制类型转换。

    百度百科中是这样介绍强制类型转换的: 

    强制类型转换是通过类型转换运算来实现的。其一般形式为:(类型说明符)(表达式)其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。自动转换是在源类型和目标类型兼容以及目标类型广于源类型时发生一个类型到另一类的转换。例如: (float) a 把a转换为浮点型,(int)(x+y) 把x+y的结果转换为整形

   同时,也应该注意下面的情况:

   1.类型说明符和表达式都必须加括号(单个变量可以不加括号),如把(int)(x+y)写成(int)x+y则成了把x转换成int型之后再与y相加了。 

   2.无论是强制转换或是自动转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变数据说明时对该变量定义的类型。

   例如:

main()
{
float f=5.75;
printf("f=%d,f=%f\n",(int)f,f);
}
f=5,f=5.750000
    (int)f中f的值变成了5(舍掉了小数位),然而却没有改变原有的f的值(5.750000),由此可见强制类型转换的作用域非常的狭窄。不过是一个临时的转换。

    强制类型转换还是挺好用的一个小知识,在编程序的时候能带来不少方便。

    在后面的博客里,我想琢磨琢磨C语言中的各种排序方法,例如最基本的冒泡法以及快速排序法、插入排序法、选择排序法、希尔排序法、对排序法、归并排序法等等。

0 0