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

5796

被折叠的 条评论
为什么被折叠?



