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

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

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

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

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

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

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

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

相关推荐
汉克老师21 小时前
GESP2025年12月认证C++一级真题与解析(判断题1-10)
c++·gesp一级·gesp1级
stars-he21 小时前
FPGA学习笔记(8)以太网UDP数据报文发送电路设计(二)
网络·笔记·学习·fpga开发
_Voosk21 小时前
macOS Xcode C++程序设置相对路径根目录
c语言·c++·xcode·swift
云和数据.ChenGuang21 小时前
Java装箱与拆箱(面试核心解析)
java·开发语言·面试
Evand J1 天前
【定位代码】复杂地磁环境下无人机自主导航增强技术研究——地磁匹配与多源数据融合方法,附matlab代码
开发语言·matlab·无人机
沛沛老爹1 天前
2025年java总结:缝缝补补又一年?
java·开发语言·人工智能·python·guava·总结·web转型ai
xiaoxiaoxiaolll1 天前
金属材料多尺度计算模拟
人工智能·学习
wadesir1 天前
高效计算欧拉函数(Rust语言实现详解)
开发语言·算法·rust
superman超哥1 天前
Rust 零拷贝技术应用:极致性能的内存操作艺术
开发语言·后端·rust·rust零拷贝技术·内存操作
麻雀无能为力1 天前
Diffusion Model(DDPM)学习笔记
笔记·学习