c++中如何判断变量的数据类型,并输出

C++中的typeid运算符用于获取变量的类型信息,返回std::type_info对象。name()方法可以获取类型名称,但不一定是可打印的。可以通过比较typeid的结果来判断类型是否匹配,但应注意运行时类型检查会带来性能开销。
摘要由CSDN通过智能技术生成

C++ 中如果想要判断变量的数据类型,可以使用 typeid 运算符。该运算符返回一个 std::type_info 类型的对象,可以使用 name() 方法获取其名称从而确定变量的类型,例如:

#include <iostream>
#include <typeinfo>
using namespace std;
int main() {
    int a = 123;
    float b = 3.14;
    bool c = true;
    char d = 'A';
    string e = "Hello World";

    cout << typeid(a).name() << endl;    // 输出 "i"  表示"int"
    cout << typeid(b).name() << endl;    // 输出 "f"  表示"float"
    cout << typeid(c).name() << endl;    // 输出 "b"  表示"bool"
    cout << typeid(d).name() << endl;    // 输出 "c"  表示"char"
    cout << typeid(e).name() << endl;    // 输出 "Ss"  S表示 std标准,s表示string

    return 0;
}

在上面的代码中,我们使用 typeid 运算符获取了变量 abcde 的类型信息,并输出了它们的类型名称。需要注意的是,name() 返回的字符串值不一定对应于 C++ 语言规范中的任何东西,也不必是可打印的,所以不应该将其用于除了打印外的其他方面。

此外,假如我们需要判断变量的类型是否与某个类型相同,例如判断 a 是否为 int,我们可以将 typeid 返回的结果与 typeid(int) 进行比较,例如:

#include <iostream>
#include <typeinfo>
using namespace std;
int main() {
    int a = 123;
    cout << (typeid(a) == typeid(int)) << endl;    // 输出 "1"
    
    return 0;
}

在上面的代码中,我们使用括号将 typeid(a) 和 typeid(int) 括起来,使用 == 运算符比较它们的返回值是否相等,得到了一个布尔值 true,表明 a 是一个 int 类型的变量。

需要注意的是,由于使用 typeid 运算符在运行时才能确定变量的类型,因此它的性能开销较大。在代码中频繁使用 typeid 可能会影响程序的性能表现,所以应该尽量避免滥用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值