c/c++如何判断变量的数据类型?

写一个函数,输入一个变量,输出该变量的数据类型,该变量可能是c语言的内置数据类型,也有可能是用户自定义的数据类型,比如结构体。
如:
struct a {
int b;
char c;
}d;

则print_type(d);输出 struct a;
这是面试时遇到的一个问题,我估计要用到模板,但是我不是很熟悉那块,所以才来问.

typeof?有这么个东西么,头文件是啥?我用的是gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu3)

c/c++判断变量的数据类型可以采用下面的代码:

#include <typeinfo>

using namespace std;

...

cout << typeid(d).name() << endl;

扩展资料:

变量类型

C语言中,变量分为全局变量和局部变量;也可以这样分:自动变量,静态变量.前者是按变量作用范围来分的,而后者是按变量存储方式来分的。

在C语言中,如果按存储占用空间来分,包括:

整型变量(代码为int),整型变量包括长整型变量(代码为long int)以及短整型变量(代码为short int),字符型变量(代码为char),浮点型变量(代码float)等。当然还有数组,结构体变量等.但新手需要注意的是,每一种变量类型最终都对应的格式字符.如:%d。

参考资料来源:百度百科-变量 (计算机名词)

温馨提示:内容为网友见解,仅供参考
第1个回答  2009-09-23
c语言中,,每个变量在定义或声明时都必须明确指定变量的类型。
通过函数来输出,似乎没有什么意义,而且也不好实现吧
第2个回答  推荐于2017-10-05
#include <typeinfo>
using namespace std;
...

cout << typeid(d).name() << endl;本回答被提问者采纳
第3个回答  2009-09-26
typeof …………||||
第4个回答  2009-09-23
跟楼主一样等答案……我的TC,好像找不到typeof这个东西。。。
相似回答