看板 C_and_CPP 關於我們 聯絡資訊
請教書本的練習題 將以下的轉型以具名的轉型法表示 int ival; double dval; const string *ps; char* pc; void* pv; a. pv = (void*)ps; b. ival = int(*pc); c. pv = &dval; d. pc = (char*)pv; 我自己的答案是 a. pv = static_cast<void*> (const_cast<string*> (ps)); b. ival = static_cast<int> (*pc); c. pv = static_cast<void*> (&dval); d. pc = static_cast<char*> (pv); c的部分compiler能過, 但是不太懂其中的轉換 &dval是個address, pv = &dval 隱含有型別轉換嗎? compiler能過是否表示能將 &dval視為 double* ? 煩請幫我解惑, 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.69.128.66
nowar100:void* 萬用指標 什麼都可以指 之後再轉正確的型態來用 09/02 17:22
loveme00835:另類多型 > < 09/02 17:23
holymars:&dval的型態當然是double* 這有什麼問題嗎.. 09/03 14:52
holymars:(&dval)的value是address,type毫無疑問是double*啊.. 09/03 14:53