显示转换、隐式转换--精确度、scanf、转义
2015-12-28 00:11
260 查看
显示转换
隐式转换
#include<stdio.h> #include<stdlib.h> void main(){ char ch = 'A';//赋值的时候,自动进行数据类型转换 /*赋值的时候,自动进行数据类型转换 赋值号会自动将右边转换成左边变量类型 大数据转小数据,小数据也可以转大数据 */ short sh = 66; int num = 100.0; double db = 100; double db1 = num + 100.f; printf("ch=%c,sh=%d,num=%d,db=%f,db1=%f",ch,sh,num,db,db1); //保存的时候,保存的是字符的ASICC码, printf("\n%d,%d",sizeof('A'),sizeof(char)); printf("\n%d,%d", sizeof(66), sizeof(short)); printf("\n%d,%d", sizeof(100.0), sizeof(int)); printf("\n%d,%d", sizeof(100), sizeof(double)); printf("\n%d,%d", sizeof(num+100.f), sizeof(double)); printf("\n%d,%d,%d,%d,%d,%d", sizeof(char), sizeof(short), sizeof(int), sizeof(long), sizeof(float), sizeof(double)); getchar(); }
ch=A,sh=66,num=100,db=100.000000,db1=200.000000 4,1 4,2 8,4 4,8 4,8 1,2,4,4,4,8
隐式转换
#include<stdio.h> #include<stdlib.h> void main(){ /*char shor直接转为int,32位系统下int和long一样大*/ char ch = 'A'; short sh = 100; int num = 10000; float fl = 1.000; double db = 10000.000; //'A'首先转换int类型65,在相加得到 printf("%d,%d",sizeof(ch+num),ch+num); //short类型转为int类型 printf("\n%d,%d",sizeof(sh+num),sh+num); //int类型转为double类型 printf("\n%d,%f", sizeof(db + num), db + num); //int类型转为float类型 printf("\n%d,%f", sizeof(fl + num), fl + num); //float类型转为double类型 printf("\n%d,%f", sizeof(db + fl), db + fl); //转为int,4个字节 printf("\n%d,%d", sizeof(ch + sh), ch + sh); unsigned int unum = 4294967000u; int num1 = 100; //打印出-196,说明超出int范围 printf("\n%d,%u,%d",sizeof(num1+unum),num1+unum,num1+unum); system("pause"); }
4,10065 4,10100 8,20000.000000 4,10001.000000 8,10001.000000 4,165 4,4294967100,-196请按任意键继续. . .
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> void main(){ float f1 = 9.1234567;//float只能精确到后6位 float f2 = 9.12345679f; printf("%f\n",f1); printf("%f\n", f2); if (f1 == f2){ printf("f1==f2\n");//相等 } /*double类型只能保证小数点15位是正确的,超过的会出现误差*/ double d = 1.232534534532423423434; printf("%f\n",d); printf("%.20f\n", d); char str[30] = "calc"; printf("我爱%s\n",str); printf(str); /*scanf*/ int num; scanf("%d",&num); printf("num=%d",num); /*转衣字符*/ printf("%%");//% system("pause"); getchar(); }
相关文章推荐
- Linux netstat命令详解
- CentOS 6.7增加SWAP交换分区
- 程序员要怎样学英语
- 我的一米阳光――老男孩IT教育
- 【Zookeeper可以干什么】
- 【Zookeeper是什么】
- java监控路径下文件变化
- PHP使用Redis一
- 转载-优秀程序员的十个tips
- Markdown,你只需要掌握这几个
- 使用eval解析JSON对象
- STL六大组件之容器篇(序列式容器vector)
- 结合jdk源代码深入讲解Java中==及equals方法的机理
- WebSphere(was)修改端口
- 目录视图摘要视图订阅 基于Extjs开发不允许为空的文本框提示及相应的验证错误提示(转)
- PAT 1009. 说反话 (20)
- 系统更改
- 定义 Android 清单
- php curl使用小示例
- STM32-LPC bug汇总