C++指针数据类型转换问题

2025-02-26 06:18:51
推荐回答(3个)
回答1:

读写差不多,如果以字节来计算,那么可以这样干:
char* tempChar = ( char* )pbFile;

int a = 123456;//...
*((int*)( tempChar + 0 )) = a;
a = *((int*)( tempChar + 0 ));

double b = 465789;//...
*( (double* )(tempChar + 4 )) = b;
b = *( (double* )(tempChar + 4 ));
熟练了之后可以用更加简单的方法。

回答2:

char *buff;
......// 填充缓冲区buff
int a = *((int *)buff); // 读出前4个字节的int部分
double b = *((double *)(buff + 4)); // 读出5--12字节的double部分

回答3:

int *pi = (int*)&pbFile[0];
double *pd = (double*)&pbFile[4];