使用typeid(变量或类型).name()来获取常量或变量的类型---gyy整理
使用typeid(变量或类型).name()来获取常量或变量的类型
<typeinfo> 该头文件包含运行时类型识别(在执行时确定数据类型)的类
typeid的使用
| t1 == t2 | 如果两个对象t1和t2类型相同,则返回true;否则返回false |
| t1 != t2 | 如果两个对象t1和t2类型不同,则返回true;否则返回false |
| t.name() | 返回类型的C-style字符串,类型名字用系统相关的方法产生 |
| t1.before(t2) | 返回指出t1是否出现在t2之前的bool值 |
常用的形式:typeid(常量或变量或表达式).name()
//获取该常量或变量或表达式的数据类型名对应的字符串
例如
int a; float b;
cout<<typeid(a).name(); //输出结果为变量a的数据类型名: int
cout<<typeid(b).name(); //输出结果为变量b的数据类型名:float
cout<<typeid(‘$’).name(); //输出结果为常量‘$’的数据类型名: char
注意:在c++中,typeid用于获知一个常量或变量的具体类型。(注意:typeid本身是操作符,不是函数!)
使用实例
- //使用typeid(变量或类型).name()来获取常量或变量的类型
- #include <typeinfo> //使用类型获取函数必须包含此头文件
- #include <iostream>
- using namespace std;
- int main()
- {
- cout<< "常量1的数据类型:"<<typeid(1).name()<<endl;
- cout<< "常量1u的数据类型:"<<typeid(1u).name()<<endl;
- cout<< "常量1l的数据类型:"<<typeid(1l).name()<<endl;
- cout<< "常量3.14的数据类型:"<<typeid(3.14).name()<<endl;
- cout<< "常量3.14f的数据类型:"<<typeid(3.14f).name()<<endl;
- cout<< "常量\'1\'的数据类型:"<<typeid('1').name()<<endl;
- cout<< "常量\"1\"的数据类型:"<<typeid("1").name()<<endl;
- return 0;
- }
运行结果
使用typeid(变量或类型).name()来获取常量或变量的类型---gyy整理的更多相关文章
- C++11特性——变量部分(using类型别名、constexpr常量表达式、auto类型推断、nullptr空指针等)
#include <iostream> using namespace std; int main() { using cullptr = const unsigned long long ...
- C语言入门教程-(4)常量和变量
1.常量和变量的概念 程序执行过程中其值不能发生改变的量叫做常量,其值能发生改变的量叫做变量.常量可以直接使用,而变量则必须先定义后才能使用,否则编译器会报错. 2.常量和变量的命名规范 在介绍常量和 ...
- C语言回顾-常量和变量
1.C语言共32个关键字 1)数据类型关键字 a.基本数据类型 void char int float double b.类型修饰关键字 short long signed unsigned c.复杂 ...
- Swift常量和变量
常量和变量由一个特定名称来表示,如maxNumber 或者 message.常量所指向的是一个特定类型的值, 如数字10或者字符”hello”.变量的值可以根据需要不断修改,而常量的值是不能够被二次修 ...
- Swift常量和变量以及命名规范
我们在上一章中介绍了如何使用Swift编写一个HelloWorld小程序,其中就用到了变量.常量和变量是构成表达式的重要组成部分.常量在声明和初始化变量时,在标识符的前面加上关键字let,就可以把该变 ...
- PHP的魔术常量(变量)、魔术方法(函数)、超全局变量
https://www.cnblogs.com/ccw869476711/p/9183783.html 一.魔术常量(魔术变量) 概念:所谓的魔术常量就是PHP预定义的一些常量,这些常量会随着所在的位 ...
- JAVA String介绍、常量池及String、StringBuilder和StringBuffer得区别. 以及8种基本类型的包装类和常量池得简单介绍
一.概述 String是代表字符串的类,本身是一个最终类,使用final修饰,不能被继承. 二.定义方式 方式一:直接赋值法 String str1 = "hello"; 方式 ...
- GetEnvironmentVariable 获取常用系统变量(转)
源:GetEnvironmentVariable 获取常用系统变量 //譬如 WINDIR 表示系统目录系统变量, 以这样获: var s:string; begin s:=GetEnvironmen ...
- 获取Field成员变量类
位于java.lang.reflect.Field包中 getModifiers() 成员变量修饰符(public.private) getName() 成员变量名字 getType() 成员变量类型 ...
随机推荐
- CLI结果输出
例子:FTP::11.245.253.20_CIPS_dev_bak\/opt/IBM/db2/V9.7/samples/ 要不要修改整体结构,先看看细节 CLI结果输出: 1. 逐条的获取--确定产 ...
- WSAEventSelect模型详解
WSAEventSelect 是 WinSock 提供的一种异步事件通知I/O模型,与 WSAAsyncSelect模型有些类似. 该模型同样是接收 FD_XXX 之类的网络事件,但是是通 ...
- pthread 实现生产者消费者问题
经典的生产者消费者问题,在这里用信号量和互斥量来实现生产和消费者模型 #include<cstdlib> #include<cstdio> #include<unis ...
- 关于进程间通信的总结(IPC)
一:三个问题 进程间通信简单的说有三个问题.第一个问题是一个进程如何把信息传递给另一个.第二个要处理的问题是是,要确保两个或更多的的进程在关键互动中不会出现交叉(即是进程互斥的问题),第三个问题是与正 ...
- 浅谈Javascript闭包
垃圾回收器 我个人把闭包抽象的称之为”阻止垃圾回收器的函数”或者”有权访问另一个函数内部变量的函数"(当然这个是我个人的理解方式,每个人可能会有不同的理解方式),为什么这样说?这样说还得说说 ...
- struts2.3.15.1 中jsp:include与jsp:forward的用法
首先配置好struts2的过滤器:web.xml中的配置 <filter> <filter-name>struts-prepare</filter-name> &l ...
- 将XML文件保存到DataGridView中
#region get护理单记录信息XML //将XML文件保存到DataTable private DataTable FromXML2DataTable(string XMLStr,string ...
- 实例讲解如何在Delphi中动态创建dxBarManager内容
一.dxBarManager中一些非常重要的概念: TCategorys:为了方便对dxBarManager中的项目进行归类而设计的一个属性,当然,只使用默认的名字为Default的Category也 ...
- Pandas简易入门(四)
本节主要介绍一下Pandas的另一个数据结构:DataFrame,本文的内容来源:https://www.dataquest.io/mission/147/pandas-internals-dataf ...
- WPF中利用后台代码实现窗口分栏动态改变
在WPF中实现窗口分栏并能够通过鼠标改变大小已经非常容易,例如将一个GRID分成竖排三栏显示,就可以将GRID先分成5列,其中两个固定列放GridSplitter. <Grid Backgrou ...