本帖最后由 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时,不输出。为什么是反序输出,可以去查下大端机和小端机的介绍。
|