有没有办法将void*buf转换为char?

有没有办法将void*buf转换为char?,c,char,void,C,Char,Void,我使用read函数接收一个字符,然后再次运行read函数。在再次运行该函数之前,我想将缓冲区中的内容保存到char变量中。像这样: void *buf; read(0,buf,1); char tempChar; 我想把*buf中的内容存储到char tempChar中。我知道我不能让它们相等,但这有可能吗 谢谢。您可以这样做: char tempChar; read(0,&tempChar,1); 因此实际上根本不需要单独的缓冲区。您可以tempChar=*(char*)buf如果

我使用read函数接收一个字符,然后再次运行read函数。在再次运行该函数之前,我想将缓冲区中的内容保存到char变量中。像这样:

void *buf;
read(0,buf,1);
char tempChar;
我想把*buf中的内容存储到char tempChar中。我知道我不能让它们相等,但这有可能吗


谢谢。

您可以这样做:

char tempChar;
read(0,&tempChar,1);

因此实际上根本不需要单独的缓冲区。

您可以
tempChar=*(char*)buf
如果需要额外的缓冲区。

作为旁白,OP(或C新手)需要习惯指针的第一件事是,当函数将指针作为参数时,这并不意味着您需要调用方中的指针变量。在许多情况下,您只需要传递现有局部变量的地址。