Ⅰ 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语言如何实现数据类型的强制转化
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;//强转
Ⅲ 【C】C语言里强制类型转化的优先级
首先一点:强制类型转换运算符的优先级大于除法
如果一个运算符两边的运算数类型不同,先要将其转换为相同的类型,即较低类型转换为较高类型,然后再参加运算,转换规则如下图所示:
Ⅳ c语言强制类型转换
1、int a;int b;double c = (double) a;double c = (double) b;int a = (int) c;这就是一种强制转变方法。
Ⅳ C语言强制类型转换怎么做
- 01
我们定义三个整型变量a、b、c,其中a=4,b=2,c=a/b。经过分析我们可以知道,若不转换数据类型,则c=2。
- 02
接着我们输出c,在输出语句中对c进行强制转换,将其由整型转换为浮点型。
- 03
检验程序,没有错误和警告。
- 04
点击界面上方的"!"运行程序,程序结果如图所示。可以看到c=2.000000,是一个浮点型的数。
Ⅵ 请问C语言如何实现数据类型的强制转化
强制类型转换
当操作数的类型不同,而且不属于基本数据类型时,经常需要强制类型转换,将操作数转化为所需要的类型。强制类型转换具有两种形式,称为显式强制转换和隐式强制类型转换。
1、显式强制类型转换
显式强制类型转换需要使用强制类型转换运算符,格式如下:
type(<expression>)
或
(type)<expression>
其中,type为类型描述符,如int,float等。<expression>为表达式。经强制类型转换运算符运算后,返回一个具有type类型的数值,这种强制类型转换操作并不改变操作数本身,运算后操作数本身未改变,例如:
int nVar=0xab65;
char cChar=char (nVar);
上述强制类型转换的结果是将整型值0xab65的高端两个字节删掉,将低端两个字节的内容作为char型数值赋值给变量cChar,而经过类型转换后nVar的值并未改变。
2、隐式强制类型转换
隐式类型转换发生在赋值表达式和有返回值的函数调用表达式中。在赋值表达式中,如果赋值符左右两侧的操作数类型不同,则将赋值符右边操作数强制转换为赋值符左侧的类型数值后,赋值给赋值符左侧的变量。在函数调用时,如果return后面表达式的类型与函数返回值类型不同,则在返回值时将return后面表达式的数值强制转换为函数返回值类型后,再将值返回,如:
int nVar;
double dVar=3.88;
nVar=dVar;//执行本句后,nVar的值为3,而dVar的值仍是3.88
1,若已知x,y为double类型,则表达式:x=1,y=x+3/2结果是多少啊?
因为x,y都是double型,所以执行了y=x+3/2这个语句后,会输出小树部分,double型默认的是小数点后几位我忘了,你自己调试下,就会明白了!
Ⅶ 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语言类型强制转换