使用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() 成员变量类型 ...
随机推荐
- OpenGL7-2-快速绘制
代码下载 #include "CELLWinApp.hpp"#include <gl/GLU.h>#include <assert.h>#include & ...
- 线程间操作无效: 从不是创建控件“label4”的线程访问它。
//主线程 public delegate void UpdateMessage(string mes); public void UpdatePortMessage(string mes) { th ...
- ◆◆◆◆◆◆◆◆◆◆◆linux下软件包的管理◆◆◆◆◆◆◆◆◆◆◆◆◆◆
查看与制定的路径名相匹配的软件包 [root@localhost certs]# which ls alias ls='ls --color=auto' /bin/ls [root@localhost ...
- Jquery 获取各种高度、宽度【整理】
alert($(window).height()); //浏览器当前窗口可视区域高度 alert($(document).height()); //浏览器当前窗口文档的高度 alert($(docum ...
- Delphi-仿vb里的IIF函数
//Delphi 函数-IIF // 实例-ChkValue := IIF(TCheckBox(tsPzJz.Controls[i]).Checked, '); function IIF(lExp: ...
- 域名转化到IP地址的实现
在linux中,有一些函数可以实现主机名和地址的转化,最常见的有gethostbyname().gethostbyaddr()等,它们都可以实现IPv4和IPv6的地址和主机名之间的转化.其中geth ...
- PAT乙级真题1005. 继续(3n+1)猜想 (25)(解题)
原题: 卡拉兹(Callatz)猜想已经在1001中给出了描述.在这个题目里,情况稍微有些复杂. 当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数.例如对n=3进行验证 ...
- fedora 解决yumBackend.py进程CPU占用过高
fedora启动时电脑风扇噪声巨响,检查进行发现是yumBackend.py进行占用CPU过高. yumBackend.py进行是后台检查更新,如果觉得没用可以使用工具关闭检查更新,或者修改检查周期. ...
- 【ASP.NET】TreeView控件学习
相关链接 : http://www.cnblogs.com/yc-755909659/p/3596039.html
- 简单3d RPG游戏 之 004 攻击(二)
人物和怪物的攻击都有CD冷却,在PlayerAttack脚本中添加成员 //冷却倒计时 public float attackTimer; //CD冷却时间 public float coolDown ...