类型强制转换,无法从double转换成char*
时间: 2023-12-23 07:02:22 浏览: 146
因为double是一个浮点数,而char*是一个指向字符数组的指针,它们之间的类型不兼容。无法将一个浮点数强制转换成一个指针类型,因为它们的内存布局和含义完全不同。如果需要将一个double转换成一个char*,则需要将其转换成一个字符串,然后使用strdup函数将该字符串分配到一个新的动态内存中,并返回一个指向该内存的指针。
相关问题
C int类型的12345 / 100转换成double类型,最后放入char*类型中
可以使用sprintf函数将double类型数据转换为char*类型,示例代码如下:
```c
int a = 12345;
double b = (double)a / 100;
char str[20];
sprintf(str, "%f", b);
```
在这个例子中,将整型变量a强制转换为double类型后再除以100,得到的结果b即为double类型。然后使用sprintf函数将b转换为char*类型,不需要指定格式化字符串。最终结果保存在char数组str中。
C int类型 / 100转换成double类型,保留两位小数,最后放入char*类型中
可以使用sprintf函数将double类型数据转换为char*类型,并保留两位小数,示例代码如下:
```c
int a = 100;
double b = (double)a / 100;
char str[20];
sprintf(str, "%.2f", b);
```
在这个例子中,将整型变量a强制转换为double类型后再除以100,得到的结果b即为double类型。然后使用sprintf函数将b转换为char*类型,并指定格式化字符串"%.2f",保留两位小数。最终结果保存在char数组str中。
阅读全文