2.1.1 自动转换
自动类型转换是由编译系统按照上图的转换规则自动完成的.例如:计算5+3.5 时,应先把整型数据 5转换成 5.0 之后再进行计算。
另外,在赋值的部分,赋值运算符右边的变量应该跟随其左边的变量。
例1 #include < stdio.h >
void main ()
{ int i=3 , k ;
float f=5.18937;
k=i*f;
print (“k=%d\n”,k);
}
输出结果为:
k=15
在这道例题中,i和k为整型(i的初值为3),f为实型(f的初值为5.18937)。所以在执行k=i*f时,先算赋值运算符右边的,因为i和f都已经按照转换法则转换为了double型数据,所以值也为double型的数据15.56811。但是由于左边的k变量是整型数,所以右边的i*f的赋值的结果也是一个整型数,因此结果要舍去i*f的小数的部分,最终结果为15。文献综述
需要注意的是:在做除法运算时,例如:i=5(i是int型数据),然后进行赋值运算f=i/2(f是float型数据)时,f得到的的结果是2.0,并不是准确的值2.5。原因是因为i和2都是整型数,所以当i这个整型数除以2这个整型数的时候,结果还是一个整形数,为2,因此在赋值时,系统自动把整数2转换成浮点数2.0赋值给f。若要解决这种问题,我们应当将赋值运算写为f=i/2.0,这样执行之后,得到的数为2.5。
2.1.2 强制转换
强制类型转换,是指在编程时由用户强制指定类型,通过类型的转换运算来实现。这也称之为显示类型转换。
它的一般形式为:(关于类型的说明符)(表达式)
例2 (int)m 是把m的值转化为整型;
(float)(a+b) 是把a+b 结果的值转化为实型;
5+(int)3.4 计算时,把3.4强制转换为整型数据3,结果为8;
在这里,像int、float这种类型说明符是一定要加上括号的。还有就是表达式的,如果表达式是单个的变量,那么可以不加,但如果是式子的,那也要加上括号。
需要说明的是,在强制类型转换时,得到一个所需类型的中间数据,而原来变量的类型未发生变化[2]。
2.2 指针用法
在C语言中,有一种数据类型得到了广泛的应用,那就是指针,因此指针也是作为C语言中的一个特色之一。在C语言中,比较复杂的数据结构,也可以被指针所表示出来。利用指针,可以更加高效的利用内存资源,可以更加方便的使用字符串和数组,能在调用函数的时候得到较多的值,也可以使编写出来的程序更加的精炼和便捷。可以说,指针就是C语言的精华所在。
2.2.1指针变量的定义
计算机中内存单元的地址又称为指针,存放指针的变量又称为指针变量,内存单元中存放的数据即为内存变量的值[3]。指针简单的来说,就是地址。对于一个变量来说,它的指针就是它的地址。 地址的图像来!自-优.尔,论:文+网www.youerw.com
如图2所示,这里的1000既是变量a的指针,也是它的地址。这里的p也是一个指针,用来存放a的地址。就像这样,如果有一个变量,它里面存放的都是别的变量的地址,那么就称这个变量为指针变量。
在C语言中,变量是要先定义,然后再使用的。指针变量的定义形式是这样的: