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

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

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

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

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

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

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

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

相关推荐
s9123601011 分钟前
【rust】生成带白边的标准二维码
开发语言·后端·rust
慕容青峰4 分钟前
牛客小白月赛 103 C 题题解
c++·算法·sublime text
小龙报4 分钟前
【算法通关指南:算法基础篇(四)】二维差分专题:1.【模板】差分 2.地毯
c语言·数据结构·c++·深度学习·神经网络·算法·自然语言处理
立志成为大牛的小牛6 分钟前
数据结构——五十八、希尔排序(Shell Sort)(王道408)
数据结构·学习·程序人生·考研·算法·排序算法
weixin_307779137 分钟前
Jenkins Jakarta Mail API 插件:邮件功能的核心库
运维·开发语言·架构·jenkins
Cinema KI10 分钟前
一文掌握 C++ 多态:原理、用法、坑点
c++
石像鬼₧魂石11 分钟前
渗透测试知识管理模板
linux·学习
代码游侠12 分钟前
学习笔记——文件I/O
linux·数据库·笔记·学习·算法
秋刀鱼 ..12 分钟前
第二届电力电子技术与电网系统国际学术会议(PETGS 2026)
大数据·python·计算机网络·数学建模·机器人·制造
郝学胜-神的一滴14 分钟前
Linux进程管理:借助信号回收进程
linux·服务器·开发语言·c++·程序人生