Fiyang

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2012年9月21日

摘要: 1、在进行自动类型转换的时候,如果原来的数是无符号数,那么在扩展的时候,高位填充的是0;如果是有符号数,那么高位填充的时符号位!这一点有点类似于“>>”操作符,当无符号数右移的时候,高位填充的是0;有符号数右移的时候,高位填充的是符号位。C语言的类型转换,可以分为两种:自动类型转换(隐式类型转换,有编译器帮你去完成)和强制类型转换(你知道自己想要什么,所以才转换)。 自动类型转换 最常见的就是混合运算以及赋值运算,还有一种就是函数值的类型转换赋值运算:自动把“=”右边的表达式的类型转换成“=”右边的变量的类型,例如 int a=4.5; a的值实际是4!混合运算:就是一个运算表达式 阅读全文
posted @ 2012-09-21 20:52 Fiyang 阅读(588) 评论(0) 推荐(0)

摘要: 首先请看如下代码:View Code 1 char c;2 while((c=getchar())!=EOF)3 {4 putchar(c);5 }初看并无不妥之处。实际上getchar函数返回的是int类型。许多初学者都习惯用 char 型变量接收 getchar、getc,fgetc 等函数的返回值,其实这么做是不对的,并且隐含着足以致命的错误。getchar 等函数的返回值类型都是 int 型,当这些函数读取出错或者读完文件后,会返回 EOF.EOF 是一个宏,标准规定它的值必须是一个 int 型的负数常量。通常编译器都会把 EOF 定义... 阅读全文
posted @ 2012-09-21 20:21 Fiyang 阅读(183) 评论(0) 推荐(0)