[問題] 型別轉換的用法

看板C_and_CPP (C/C++)作者 (Lucius)時間15年前 (2010/09/02 17:18), 編輯推噓2(202)
留言4則, 3人參與, 最新討論串1/1
請教書本的練習題 將以下的轉型以具名的轉型法表示 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

09/02 17:22, , 1F
void* 萬用指標 什麼都可以指 之後再轉正確的型態來用
09/02 17:22, 1F

09/02 17:23, , 2F
另類多型 > <
09/02 17:23, 2F

09/03 14:52, , 3F
&dval的型態當然是double* 這有什麼問題嗎..
09/03 14:52, 3F

09/03 14:53, , 4F
(&dval)的value是address,type毫無疑問是double*啊..
09/03 14:53, 4F
文章代碼(AID): #1CVslbbd (C_and_CPP)
文章代碼(AID): #1CVslbbd (C_and_CPP)