LZ:代码:
float f=12.8;
int *p;
如果我想把f赋值给p指针,他们之间的类型肯定要转换,请问怎么实现这种类型的转换?
把f 赋值给p指针 , lz 的意思是 f的数值 而 不是地址 吗
// 这是值转换, 转换什么值要看接受的是什么类型
#include <stdio.h>
int main()
{
float f = 12.8;
int a, *p = &a ;
*p = (int)f;
printf(" %d\n", *p);
return 0;
}
//
如果LZ 是说的 内存地址转换,内存地址是没有类型的
#include <stdio.h>
int main()
{
float tmpF = 1.28, *ptrF;
int *ptrI;
ptrF = &tmpF;
ptrI = ptrF;
//*ptrI = 12.5; LZ 可以试试加上这句
printf(" ptrF = %p, ptrI = %p\n", ptrF, ptrI);
printf(" tmpF = %f, *ptrF = %f, *ptrI = %d\n", tmpF, *ptrF, *ptrI);
return 0;
}
输出:
ptrF = 0xbf9a8cb4, ptrI = 0xbf9a8cb4 // 指向的地址是一样的
tmpF = 1.280000, *ptrF = 1.280000, *ptrI = 1067702026
|