*(int*)pc *(char *)pc

void* pc;
int i = 123;
char c = 'a';
pc = &i;
cout << pc << endl;         //输出指针地址006FF730
cout << *(int*)pc << endl;  //输出值123
pc = &c;
cout << *(char*)pc << endl; //输出值

问题:当一个指针附上一个表示的是指针所对应的值,那中间的(char)和(int*)表示的是啥

没那么复杂,你这样理解
p = 0x1234;
这是个指针的地址,如果你想使用 *p,告诉系统,你要去取数据,那么系统就存在疑问,取多少个字节的内容???
ok,有个方便的,类型,只要系统知道 p 的类型就知道取多少 字节的内容

*(int*)pc表示把指针pc强制转化为int*指针类型,然后再对其解引用,最终值是pc指针所指位置上整型值
*(char*)pc表示指针pc强制转化为char*指针类型,然后再对其解引用,最终值是pc指针所指位置上字符值