c语言复习4--类型转换

在c语言中不同类型的数据是可以进行转换的,比如char能转换为int类型。

C语言的类型转换分两种:

1.强制类型转换。

2.隐式类型转换。


强制类型转换的语法:

(type)var_name;

(type)value;

强制类型转换的结果:

1,目标类型能容纳该类型值,则结果不变;

2,目标类型不能容纳该类型值,则结果发生截断。;

代码如下

//强制类型转换,能容纳,结果不变
char c = 10;
int i = (int)c;
printf("%d\n", i);


//强制类型转换,不能容纳,发生截断
double d = 1.2;
int i1 = (int)d;

printf("%d\n", i1);


隐式类型转换

编译器主动进行的类型转换

比如:

char c=1;

short s = c;

int i = s ;

long l = i;

注意:

隐式类型转换,低类型转换为高类型是安全的不会发生截断

而高类型转换为低类型是不安全的会发生截断,造成不安全的结果;

隐式类型转换发生的地方:

1.算术表达式中,低类型转换为高类型

2.赋值表达式中,表达式的值转换为左边变量的类型

3.函数调用时,实参转换为形参类型

4函数返回值,return 表达式转换为返回值类型

安全的类型转换如下


注意

在算术运算时,低类型会自动转换为高类型;

2.如char, short 这些类型进行算术运算是,会进行整型提升,提升为int或unsigned int  long 等等的整型类型中的最小类型。前提只要转换后的类型能容纳原类型所有值。

学习交流群199546072

猜你喜欢

转载自blog.csdn.net/qq_39809601/article/details/80975662
4--