‘壹’ c语言强制类型转换怎么做
- 01
我们定义三个整型变量a、b、c,其中a=4,b=2,c=a/b。经过分析我们可以知道,若不转换数据类型,则c=2。
- 02
接着我们输出c,在输出语句中对c进行强制转换,将其由整型转换为浮点型。
- 03
检验程序,没有错误和警告。
- 04
点击界面上方的"!"运行程序,程序结果如图所示。可以看到c=2.000000,是一个浮点型的数。
‘贰’ C语言 强制类型转换运算符
可以利用强制类型转换运算符将一个表达式转换成所需类型。例如:
(double)a (将a转换成double类型)
(int) (x+y) (将x+y的值转换成int型)
(float)(5%3) (将5%3的值转换成float型)
其一般形式为
(类型名)(表达式)
注意,表达式应该用括号括起来。如果写成
(int)x+y
则只将x转换成整型,然后与y相加
需要说明的是,在强制类型转换时,得到一个所需类型的中间变量,而原来变量的类型未发生变化。例如:
a=(int)x
如果已定义x为float类型变量,a为整型变量,进行强制类型运算(int)x后得到一个int类型的临时值,它的值等于x的整数部分,把它赋给a,注意x的值和类型都未变化,仍为float型。该临时值在赋值后就不再存在了。
从上可知,有两种类型转换,一种是在运算时不必用户干预,系统自动进行的类型转换,如3+6.5。第2种是强制类型转换。当自动类型转换不能实现目的时,可以用强制类型转换。如%运算符要求其两侧均为整型量,若x为float型,则x%3不合法,必须用(int)x%3,。强制类型转换运算符优先于%运算,因此先进行(int)x的运算,得到一个整型的中间变量,然后再对3求余。此外,在函数调用时,有时为了使实参与形参类型一致,可以用强制类型转换运算符得到一个所需要类型的参数。
‘叁’ C语言强制类型转换
强制类型转换是把变量从一种类型转换为另一种数据类型。
例如,如果想存储一个long类型的值到一个简单的整型中,需要把long类型强制转换为int类型。可以使用强制类型转换运算符来把值显式地从一种类型转换为另一种类型。
发生在同一个编译系统中,比如说把int转化为longint,在VC++6.0里面,longint和int都是4个字节,不会有问题的,但是如果把int类型转化为short类型那就装不下了,简而言之就是长类型不能转化为短类型。
int类型如果要转化为float、double、longdouble类型的时候只是末尾多了几个0,但是反之转化,就会出现数据的损失,小数部位都被省略掉了。
赋值中的类型转换
当赋值运算符两边的运算对象类型不同时,将要发生类型转换, 转换的规则是:把赋值运算符右侧表达式的类型转换为左侧变量的类型。
由于C语言中的浮点值总是用双精度表示的,所以float 型数据只是在尾部加0延长为double型数据参加运算,然后直接赋值。double型数据转换为float型时,通过截尾数来实现,截断前要进行四舍五入操作。
以上内容参考:网络-C语言类型强制转换
‘肆’ C语言中的强制转换类型
你要知道,c语言是一个强类型的语言,也就是说当类型不匹配的时候通常情况下不用特别说明,系统都可以自动进行转换。
比如当你把一个字符型的变量赋给一个整形时,系统会得到该字符的asc码值(数据在内存当中都以asc码的二进制形式保存),然后将该值赋给整形变量。当然,必要的时候需要你自己给出转换的方式,就是把数据转换成什么类型。
‘伍’ 请问C语言如何实现数据类型的强制转化
C编译器中整型常量默认为int型,即65这个数是int型的,由于65<127(char型的范围[-128,127]),可以转化为char型即char
c=65;合法,使用输出语句printf("%c",
c);可以输出他的字符形式即'A'。
对于其他类型的转换,如果精度不损失可以默认转换,如:
char
c
=
65;
int
i
=
c;//默认转换
否者需要强转,如:
int
i
=
65;
char
c
=
(int)i;//强转