图1.2分支结构图3.循环结构循环结构可以减少源程序重复编写的工作量,提高程序处理复杂数据的能力,这也是程序设计中最能发挥计算机特长的程序结构。图1.3C语言程序结构......
2025-09-30
1.自动转换
自动转换发生在不同类型数据混合运算时,由编译系统自动完成。在进行运算时,不同类型的数据需要先转换成同一类型,然后进行运算。一般情况下,数据类型的转换由低类型向高类型转换,如short转换为int,如图2.5所示。
图2.4中,横向向左的箭头表示必定发生的转换。如果字符数据参与运算,则必定转换为整型;如果float数据参与运算,则必须转换为双精度型。例如:假设已经指定i为整型变量,f为float变量,d为double型变量,表达式为:
10+’a’+if-d/2
运算次序为:
(1)进行if运算,先将i和f转换成double型,运算结果为double型;
(2)进行d/2运算,将常量2转换成double型,d/2为double型;
(3)进行10+’a’运算,先将’a’转换成整数97,再加10,结果为整型107;
(4)整数107与if的积相加,结果为double型;
(5)最后结果为double型。
2.赋值转换
当赋值运算符两边的运算对象类型不同时,将要发生类型转换,转换的规则是:把赋值运算符右侧表达式的类型转换为左侧变量的类型。具体的转换如下:(https://www.chuimin.cn)
(1)float型与int型。
如果将一个实型数据赋值给一个整型变量,那么将舍弃实型数据的小数部分。例如,将2.12赋值给整型变量i,结果为2。将整型值赋给实型变量时,数值不变,只将其形式改为浮点形式,即小数点后带若干个0。
(2)double型与float型。
将一个double型数据赋给float型变量时,截取其前面7位有效数字,存放在float型变量存储单元中;
(3)int型与char型。
将一个int型数据赋给char型变量时,只将其低8位传送到char型变量,高位部分舍弃,这可能会得到一个完全不一样的结果,所以不提倡这种做法。将char型数值赋给int型变量时,一些编译程序不管其值大小都作正数处理,而另一些编译程序在转换时,若char型数据值大于127,就作为负数处理。
图2.5 自动转换
(4)int型与1ong型。
long型数据赋给int型变量时,将低16位值传送给int型变量,而将高16位截断舍弃。将int型数据送给long型变量时,其外部值保持不变,而内部形式有所改变。
相关文章
图1.2分支结构图3.循环结构循环结构可以减少源程序重复编写的工作量,提高程序处理复杂数据的能力,这也是程序设计中最能发挥计算机特长的程序结构。图1.3C语言程序结构......
2025-09-30
在C 语言程序中,是通过对函数的调用来执行函数体,其过程与子程序调用相似。在调用函数时,大多数情况下主调函数和被调函数之间有数据传递。图5.2程序运行结果函数调用在程序中起一个表达式或者语句的作用。在调用函数时,有3 种不同的方式。这就要求该函数必须是有返回值的。getchar 函数调用作为表达式使用,即赋值表达式的右操作。......
2025-09-30
C语言把括号、赋值、强制类型转换等都作为运算符处理,灵活使用各种运算符可以实现在其他高级语言中难以实现的运算,功能强大。另外,C语言还把括号、下标、强制类型转换、取地址等都作为运算符处理,并通过与算数运算符的组合达到不同的目的,从而使程序更加简洁明了。C语言具有超强的可移植性。总之,C语言在运算符方面是比较容易让人混淆的。......
2025-09-30
下面介绍6 种位运算符的运算与应用。在进行位运算之前,需把参加位运算的对象的值转换为二进制数。例如:4.按位与运算按位与运算符(&)将其两边数据对应的二进制位按位进行与运算。清零,即使全部二进制位置为0,只要找一个二进制数,其中各个位符合条件:原来的数中为1 的位,新数中相应的位为0,其他位不考虑,然后使二者进行&运算,即可达到清零的目的。图8.1进制转换程序运行结果......
2025-09-30
在C 语言中,对文件的基本操作包括文件的打开与关闭、文件的读和写等。表9.1文件操作方式例如:打开当前目录下的C.DAT 文件,这是一个二进制文件,只允许进行读操作,并使fp 指针指向该文件。应该养成在程序终止前关闭所有文件的习惯,如果不关闭文件将会丢失数据。......
2025-09-30
下面介绍几个顺序程序设计的例子。将c1分别用字符形式(‘A’)和整数形式输出。我国2001 年工业产值为100,如果以9%的年增长率增长,计算到2008 年时的工业产值。设rate 为年增长率,n 为年数,value 为第n 年的总产值,year 为年份。使用求幂函数时,必须要在程序的开头添加头文件math.h。......
2025-09-30
表4-3 C51支持的数据类型续表注:数据类型中加底色的部分为C51语言扩展的数据类型。C51语言中使用的数据类型包括C语言中标准的数据类型和C51语言扩展的数据类型。C51语言扩展的数据类型有位类型、可位寻址的位类型、特殊功能寄存器和16位特殊功能寄存器型等。另外,C51语言还支持由基本数据类型组成的数组、结构体、联合体和枚举类型等结构类型数据。......
2025-09-30
这三种整型数据类型都可以指定为“有符号”或“无符号”,如果既不指定为signed,也不指定为unsigned,则默认为signed。归纳起来,整型数据分为以下6种,如表2.1所示。表2.1整型数据类型表2.1中“类型”列中的方括号部分是可以省略的,如signed short int与short等价。例如:int a,b,c,d;unsigned e;long f,g;在程序中,一个int型变量最大允许值为32767,要防止数据的溢出。......
2025-09-30
相关推荐