黑马程序员技术交流社区

标题: 有什么办法可以知道任何一个变量的类型? [打印本页]

作者: goobag    时间: 2014-5-1 21:05
标题: 有什么办法可以知道任何一个变量的类型?
c语言库函数中是否存在一个库函数,传递给它一个变量,返回变量的类型?
作者: 执着的土豆    时间: 2014-5-1 21:07
本帖最后由 执着的土豆 于 2014-5-1 21:13 编辑

  帮顶吧。再c++中好像是type_info,在c中我就真不知道了。   
作者: 2014571245    时间: 2014-5-2 09:56
本帖最后由 2014571245 于 2014-5-2 10:12 编辑

没有,c语言在计算机底层存储的都是二进制,所以变量在本质上无区别,类型是程序员为便于编程而假想的一个概念,c语言没有存储假想类型的类型信息,所以在运行时是无法获取变量的类型的。
我们在看到的所有关于类型的判断是在便于之前进行的,编译之后是不做任何判断的。
例如:定义了一个char[4]数组,在内存中占4字节,也可以表示int型,例如:
#include<stdio.h>
int main()
{
    char a[4]="abc";
    int * p=(int*)a;
    printf("%x\n",*p);
    return 0;
}
输出结果:636261
转为ascii码为'c','b','a';字符中得'\0'在最前面,printf时,不输出。为什么是反序输出,可以去查下大端机和小端机的介绍。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2