C语言之类型转换

在C语言中,类型转换分为两类:强制类型转换和隐式类型转换

强制类型转换,就是程序员强制进行的:

eg:

        short i=5;

        float j=(float)i;

强制类型转换的结果为左值类型,但是需要注意不是所有强制类型都能成功。

eg:

     struct node
{
int m;
int n;
};

        node p;

    int i=(int)p;

输出:error C2440: “类型转换”: 无法从“node”转换为“int”

隐式类型转换:编译器自动进行的转换,需要主要的是,一般低类型到高类型是安全的如char转为int,而高类型到低类型则会截断,如float型到int型。

在实际工程中,隐式类型一般会发生转换的位置在:

算术运算中,如一个float类型与int类型做运算

赋值表达式,其值类型为左值类型

函数调用,实参到形参

函数返回,return语句返回值转换为返回值类型。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章