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