|
发表于 2017-8-14 10:47:22
|
显示全部楼层
本來不想再說了, 但看到你又胡扯到 "强制改变了变量类型", 想你應該是初學的吧, 不希望你把錯誤的訊息誤導了別人.
看來你是對 implicit type conversion 有點誤解了.
當 A = B 時, 如果 A 跟 B 是不同類的話, 確實是會嘗試進行轉換.
但並不是把 A 改變, 而是嘗試把 B 轉成 A 的類, 再送進 A.
嚴格來說, 只是把 B 的值抄出檬, 作中途轉換, B 還是不變的.
完成之後, A 跟 B 的性質是沒有改變的.
char cResult = "";
就會看成是 char = (const char*), 就是要進行轉換, 也只會是把後面的 (const char*) 先轉成 char 再放進去.
就等同於:
char cResult = (char) "";
如果你想說把地址放進去的話, 也要考慮一下儲放空間的大小.
用 int = (char *) , 還可以說得通, 而且也是合理的用.
但 char = (char *), 就怎樣胡扯也不行了. 難道要說是把半個地址給記下來?
當然, 它亦不會自動變成:
char cResult = ""[0] ;
不要太多的胡亂猜想了, 實際去測試一下就更清楚.
如果你真的有試過, 可以把 char 強制變成 char* 的話, 我也想見識一下, 希望你可以把測試的源碼分享出來, 讓大家學習學習.
|
|