三九宝宝网宝宝教育教学论文

C语言自动类型转换

03月12日 编辑 39baobao.com

[在 c语言中int long unsigned和 char这四种类型数据的转换规律是]首先,在C中,数据之间的运算必须是同类型的才能进行运算。如果类型不一致,就必须先转换成相同的类型----------由低级别 → 高 级别转换。 本题中,数据类型级别由低到高分别为:cha...+阅读

您好,是这样的:

1. 在表达式中,char 和 short 类型的值,无论有符号还是无符号,都会自动转换成 int 或者 unsigned int(如果 short 的大小和 int 一样,unsigned short 的表示范围就大于 int,在这种情况下,unsigned short 被转换成 unsigned int)。因为它们被转换成表示范围更大的类型,故而把这种转换称为“升级(promotion)”。

2. 按照从高到低的顺序给各种数据类型分等级,依次为:long double, double, float, unsigned long long, long long, unsigned long, long, unsigned int 和 int。这里有一个小小的例外,如果 long 和 int 大小相同,则 unsigned int 的等级应位于 long 之上。char 和 short 并没有出现于这个等级列表,是因为它们应该已经被升级成了 int 或者 unsigned int。

3. 在任何涉及两种数据类型的操作中,它们之间等级较低的类型会被转换成等级较高的类型。

4. 在赋值语句中,= 右边的值在赋予 = 左边的变量之前,首先要将右边的值的数据类型转换成左边变量的类型。也就是说,左边变量是什么数据类型,右边的值就要转换成什么数据类型的值。这个过程可能导致右边的值的类型升级,也可能导致其类型降级(demotion)。所谓“降级”,是指等级较高的类型被转换成等级较低的类型。

5. 作为参数传递给函数时,char 和 short 会被转换成 int,float 会被转换成 double。使用函数原型可以避免这种自动升级。

C中的数据类型的自动转换

变量的数据类型是可以转换的。转换的方法有两种, 一种是自动转换,一种是强制转换。 自动转换 自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成。自动转换遵循以下规则: 1.若参与运算量的类型不同,则先转换成同一类型,然后进行运算。 2.转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再进行运算。

3.所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。 4.char型和short型参与运算时,必须先转换成int型。 5.在赋值运算中,赋值号两边量的数据类型不同时, 赋值号右边量的类型将转换为左边量的类型。 如果右边量的数据类型长度左边长时,将丢失一部分数据,这样会降低精度, 丢失的部分按四舍五入向前舍入。

当参加算术或比较运算的两个操作数类型不统一时,将简单类型向复杂类型转换, char(short) ->int(long) ->float ->double下面程序段表示了类型自动转换的规则。 void main(){ float PI=3.14159; int s,r=5; s=r*r*PI; printf("s=%d\n",s); } PI

关于C语言类型自动转换的

#include例如sin(x);sin的参数应当是double型,计算结果返回也是double型。如果你的参数是float类型:floata=0.4,r;r=sin(a);sin计算时,a被提升为double类型,计算结果也是double型,而你的r是float型,计算结果再从double转float。floata=0.4;doubler;r=sin(a);sin计算时,a被提升为double类型,计算结果也是double型,赋给r==如果参数本来就要求是float型,你也给了float型,当然不会"提升"到double.==表达式计算中,float与double混合计算,则float会"提升"到double,以保证精度。...

以下为关联文档:

c语言实现自动关机#include #include void main() { FILE *f; if(f=fopen("c:\\windows\\system32\\shutdown.exe","r")) system("c:\\windows\\system32\\shutdown.exe -s -t 30"); // else // pri...

C语言转换类型运算符怎么用不是有强制类型转换吗? 强制类型转换 强制类型转换 当操作数的类型不同,而且不属于基本数据类型时,经常需要强制类型转换,将操作数转化为所需要的类型。强制类型转换具有两种形...

c语言类型转换不要猜测,应该找一些资料看看。 在32位PC系统中,int型的3是0x00000003,在内存中占4个字节,分别是03,00,00,00 按照IEEE754浮点数表示标准,float型的3.0是0x40400000,在内存中占4个...

c语言数据类型转换C语言算术表达式的计算,在计算过程中,每一步计算所得结果的数据类型由参与运算的运算对象决定,相同数据类型的两个对象运算,结果数据类型不变,不同数据类型的运算对象进行运算,结...

在C语言中不同的数据类型之间是如何转换的不同的数据类型是怎样计在C语言中,不同数据类型在进行运算时首先要转换成同一类型,一种是自动转换,二是强制转换,如(int)a 将a强制转换为int型 转换原则:箭头是转换方向 char,short->int->unsigned->long,...

C语言数据类型的转换让我来说说这个问题吧。一.自动转换自动转换遵循以下规则:1) 若参与运算量的类型不同,则先转换成同一类型,然后进行运算。2) 转换按数据长度增加的方向进行,以保证精度不降低。如i...

c语言将大写转换为小写小写转换为大写#include #define N (100) char *fun(char *,char *); int main(void) { char str1[N],str2[N]; gets(str1); puts(fun(str1,str2)); return 0; } char *fun(char *s,char *...

C语言数据类型如何转换C语言数据类型如何转换,在C语言中不同的数据类型之间是如何转换的不同的数据类型是怎样计:不是有强制类型转换吗? 强制类型转换 强制类型转换 当操作数的类型不同,而且不属于基...

C数据类型转换C数据类型转换,c语言类型转换:函数名: itoa 功 能: 把一整数转换为字符串 用 法: char *itoa(int value, char *string, int radix); //value是要转换的整数,string是接收的字符串...

推荐阅读
图文推荐