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

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

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

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

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

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

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

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

相关推荐
weixin_468466851 分钟前
排列组合算法之隔板问题与错排公式
c++·算法·数学建模·排列组合·竞赛·错排·隔板
tryqaaa_3 分钟前
学习日志(二)【linux全部命令,http请求头{有例题},Php语法学习】
linux·学习·http·php·web
wsoz11 分钟前
Leetcode链表-day9
c++·算法·leetcode·链表
sxjk198724 分钟前
WPS表格REGEXP公式提取车牌学习
学习·wps·表格·数据处理
万法若空27 分钟前
ANSI转义码详解
linux·c++
Bat U27 分钟前
JavaEE|多线程(五)
java·开发语言·jvm
玉小格41 分钟前
对py作业的一个复盘
开发语言·python
Rust研习社41 分钟前
使用 Tonic 构建高性能异步 gRPC 服务
开发语言·网络·后端·http·rust
m0_3771081443 分钟前
PCB学习
学习
captain37644 分钟前
JDBC(Java Data Base Connectivity)
java·开发语言