Oh that's interesting, I assumed the casting would mangle the float bytes. I guess not. The below works:
Code
int main(){
	float f = 0;
	int* pN = &f;
	*pN = 12345;
	double d = f;
	f = 0;
	printf("\n*pN: %d",*pN);
	f = d;
	printf("\n*pN: %d",*pN);
	char* pS = &f;
	strcpy(pS,"abc");
	d = f;
	f = 0;
	printf("\npS: %s",pS);
	f = d;
	printf("\npS: %s",pS);
}

/* output:

*pN: 0
*pN: 12345
pS: 
pS: abc

*/