之所以这样做只是为了某些时候节约一点点空间,并展现一下C语言给程序员的广阔空间,开发中不推荐这么做。 double d; char a[10]={"mylove"}; *(int*)&d=(int)a; printf("%s",d); double dd; int aa; aa=10; dd=aa; printf("%d",dd);//此时是输出0的,换成%f可正常输出 *(int *)&dd=aa; printf("%d",dd);//正确输出