【C++ Primer Plus学习记录】指针——指针和数字

指针不是整型,虽然计算机通常把地址当作整数来整理。

不能简单地将整数赋给指针:

cpp 复制代码
int *pt;
pt = 0xB8000000;

0xB8000000是老式计算机系统中视频内存的组合段偏移地址,但这条语句并没有告诉程序,这个数字就是一个地址。在C99标准发布之前,C语言允许这样赋值。但C++在类型一致方面的要求更严格,编译器将显示一条错误消息,通告类型不匹配。要将数字值作为地址来使用,应通过强制类型转换将数字转换为适当的地址类型:

cpp 复制代码
int *pt;
pt = (int * )0xB8000000;

这样,赋值语句的两边都是整数的地址,因此这样赋值有效。

注意,pt是int值的地址并不意味着pt本身的类型是int。

相关推荐
Nebula嵌入式11 分钟前
【C语言】09-深入解析main函数
linux·c语言·开发语言·嵌入式
炎武丶航1 小时前
汽车功能测试学习(1):FCW前方碰撞预警
功能测试·学习·汽车
神罚天下ET2 小时前
c# ACME client (补充)
开发语言·c#
小灰灰搞电子2 小时前
Qt 实现魔法导航菜单源码分享
开发语言·qt
持敬chijing2 小时前
Python概述
开发语言·python
888CC++3 小时前
C语言与C++的区别:从面向过程到面向对象
java·c语言·c++
Darkwanderor4 小时前
Linux系统编程实战项目:模拟实现shell
linux·c++
himobrinehacken4 小时前
揭秘Windows程序启动的神秘之旅
c++·安全
lpfasd1235 小时前
编程语言榜单变迁分析
开发语言·后端·scala
名字还没想好☜5 小时前
Go 用 bufio.Scanner 读大文件踩坑:默认 64KB 行上限、Buffer 扩容与按 Token 切分
开发语言·后端·golang·go