变量类型和指针之间的转换问题。
float *p1;
p1 = 100 ;
printf("p1:%d\n", sizeof(p1));
printf("p1:%d\n", &p1);
由于指针里面只能存放地址,而将整型数付给p1.意思是将指定的地址赋给指针。这样编译器会有警告,但是可以运行。会产生一个垃圾值。
结果:
p1:8
p1:-13304
若是想将数值赋给指定地址可以这样做:(不建议这样做,大部分编译器会崩溃)
首先,找到一个自己有权限赋值的内存地址
int i;
printf("%p",&i);
结果:
0xffffcc08
然后直接将想要赋的data赋给这个地址:
*(int *)0xffffcc08 = data;