Welcome

首页 / 软件开发 / C语言 / C语言中类型转换时的数据丢失问题

C语言中类型转换时的数据丢失问题2013-06-07当把较长的整数转化为较短的整数或是char类型时,超出的高位部分将被丢弃。

程序一:

#include <stdio.h> int main() { int i; char c; i=65535; c=48; i=c;c=i;printf("char=%c
",c); printf("int=%d",i); getchar(); }
输出为:

程序二:

#include <stdio.h> int main() { int i; char c; i=65535; c=48; c=i; i=c; printf("char=%c
",c); printf("int=%d",i); getchar(); }
输出为:

因为c=-1,所以字符不可见

当较低类型的数据转换为较高类型时,一般只是形式上有所改变,  而不影响数据的实质内容, 而较高类型的数据转换为较低类型时则可能有些数据丢失。

本文出自 “驿落黄昏” 博客,请务必保留此出处http://yiluohuanghun.blog.51cto.com/3407300/1153598