显示转换、隐式转换--精确度、scanf、转义

C基础 专栏收录该内容
11 篇文章 0 订阅

显示转换

#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();
}



  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页

打赏

进击的小猿

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值