C++不能简单地将整数赋给指针
生活随笔
收集整理的這篇文章主要介紹了
C++不能简单地将整数赋给指针
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
如下所示:
int *ptr; ptr = 0xB8000000; // type mismatch 類型匹配錯誤在這里,左邊是指向int的指針,因此可以把它賦給地址,但右邊是一個整數(shù)。您可能知道,0xB8000000是老式計算機系統(tǒng)中視頻內(nèi)存的組合段偏移地址,但這條語句并沒有告訴程序,這個數(shù)字就是一個地址。在C99標(biāo)準(zhǔn)發(fā)布之前,C語言允許這樣賦值。但C++在類型一致方面的要求更嚴格,編譯器將顯示一條錯誤消息,通告類型不匹配。要將數(shù)字值作為地址來使用,應(yīng)通過強制類型轉(zhuǎn)換將數(shù)字轉(zhuǎn)換為適當(dāng)?shù)牡刂奉愋?#xff1a;
int *ptr; ptr = (int *) 0xB8000000; // type now match這樣,賦值語句的兩邊都是整數(shù)的地址,因此這樣賦值有效。 注意,pt是int值的地址并不意味著pt本身的類型是int。例如,在有些平臺中,int類型是個2字節(jié)值,而地址是個4字節(jié)值。
總結(jié)
以上是生活随笔為你收集整理的C++不能简单地将整数赋给指针的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么那么多蟑螂?
- 下一篇: C++前缀++/–比后缀++/–的效率高