作者jehovah (Lucius)
看板C_and_CPP
標題[問題] 型別轉換的用法
時間Thu Sep 2 17:18:26 2010
請教書本的練習題
將以下的轉型以具名的轉型法表示
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