visualc++在转换变量时使用不同的基本类型

visual c++ different basics types during converting variables

本文关键字:类型 转换 变量 visualc++      更新时间:2023-10-16

c++在转换变量时遇到不同的基本类型问题是的,这是个愚蠢的问题,但我是c++和IDK的新手。

我有这个代码:

#include <iostream>
using namespace std;
int main()
{
float a = 54;
cout << a;
double(a);
cout << a;
return 0;
}

这个错误:

  • errorC2371:"a":重新定义;不同的基本类型第7行
  • 错误C2088:'<lt;':第8类线路违法

为什么它写:不同的基本类型,当我只将float转换为double时?第二个错误是什么意思?什么类行

我也有一个问题:我能把两个基本类型不同的变量(比如int)转换成字符串吗?它和将f.e.double转换为float相同还是不同?

这是在VC++2010 中调试项目期间的打印屏幕

您已经将"a"声明为float,编译器认为您正在尝试将其重新声明为double。试试这个:

#include <iostream>
using namespace std;
int main()
{
    float a = 54;
    cout << a;
    double b(a);
    cout << b;
    return 0;
}

就你的第二个问题而言:

我可以将两个不同基本类型的变量(如int)转换为一串它与将f.e.double转换为float或不同的

答案是,你不能隐式甚至直接地转换它们(也就是说,让它们保留它们的含义),但你当然可以使用std::stringstream等工具来为你进行转换。另一方面,从floatdouble的转换是编译器将为您进行的隐式转换。