c语言中,怎么判断变量的类型?如何判断一个变量是int还是long int?(不通过声明)

我知道php中有var_dump(), 可以输出变量的类型

1、首先在c语言中,long long 是C99标准对整形类型做的扩展,每个long long类型的变量占8字节,64位。如下图使用%lld输出。

2、这种输出方法的结果如下图所示,可以看到输出结果是0,而很明显输出的结果不应该为零,也就是说输出结果是错误的。

3、这时要看下是不是函数有问题,采取的方法如下图所示。

4、修正之后的输入结果下图所示,通过这个过程,得出的结论是输出long long类型的数据应该使用prinf的%lld格式,注意输出函数不要写错。

5、最后输出bool类型的数据,其使用Printf的输出格式如下图所示。

6、最后输出结果如下图所示,就完成了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-25
虽然用这个sizeof()函数可以通过字节数判断!但是你说int 和 long int这里就会出现问题!应为int 和long int 都是4个字节!还有float!只能说sizeof()可以区分字符和数字。至于要去区别long int 和int 有点难!不必纠结这个吧...
第2个回答  推荐于2018-03-27
c++ 里有。c 我没试过。调 typeid()。 头文件#include <typeinfo>

#include <iostream>
#include <typeinfo>
using namespace std;
main()
{
short t;
long int L;
double d;
std::cout << typeid(t).name() << std::endl;
std::cout << typeid(L).name() << std::endl;
std::cout << typeid(d).name() << std::endl;
}本回答被提问者和网友采纳
第3个回答  2013-07-25
标准C里是没有方法获得一个变量的类型的,在gcc扩展C中有typeof可以使用,在linux的很多地方都用到了typeof,和sizeof类似。
第4个回答  2013-07-25
可以用单目运算符sizeof(变量名)进行判断,16位机下int是2字节,32位机下是4字节,long int是8字节