c语言全类型互相转换demo

本文展示了C语言中几种常见的数据类型转换方法,包括int转double使用强制类型转换和除法运算,char转int使用atoi函数,int转char使用itoa函数,double和float转char使用snprintf,以及整数提升在加法运算中的应用,例如将字符c的ASCII值与整数相加。

 1、int转double

#include <stdio.h>
#include <windows.h>

int main (void)
{
   SetConsoleOutputCP(65001);
   int a=10;
   double c=(double)a/2;
   printf("%f",c);
}

 强制类型转换运算符的优先级大于除法,因此 sum 的值首先被转换为 double 型,然后除以 count,得到一个类型为 double 的值。

会先执行(double)a   再执行/2

2、char转int

#include <stdio.h>
#include <stdlib.h>

int main (void)
{
   char A[] = "100";
   int B = atoi(A); //是stdlib.h 里的
   printf("%d\n",B);
}

 3、int转char

理论上 要加  #include <stdlib.h> 博主发现好像也可以用所以就没加

#include <stdio.h>
#include <windows.h>
int main (void)
{
   SetConsoleOutputCP(65001);
   int a=100;
   char b[20]={"\0"};
   itoa(a,b,10);//转换  后面那个10是说a是10进制,所有咱这边写10
   printf("%s",b);
}
// itoa():将整型值转换为字符串。
// ltoa():将长整型值转换为字符串。
// ultoa():将无符号长整型值转换为字符串。
// gcvt():将浮点型数转换为字符串,取四舍五入。
// ecvt():将双精度浮点型值转换为字符串,转换结果中不包含十进制小数点。
// fcvt():指定位数为转换精度,其余同ecvt()。

4、double和float转char

#include <stdio.h>
#include <windows.h>
int main (void)
{
   SetConsoleOutputCP(65001);
   double doub=10.520000;//也可以转float类型
   char str[10];
   snprintf(str,sizeof(str)-1,"%g", doub);//若有需求转换后末尾不添加0,应该使用%g作为转换符而非%f
   printf("%s",str);
}

整数提升

#include <stdio.h>
#include <windows.h>

int main (void)
{
   SetConsoleOutputCP(65001);
   int a=17;
   char b='c';
   int sum=a+b;/* ascii 值是 99 */
   printf("%d",sum);
}

 在这里,sum 的值为 116,因为编译器进行了整数提升,在执行实际加法运算时,把 'c' 的值转换为对应的 ascii 值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雪狼之夜

打个赏,让博主知道博文没白写

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值