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

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

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

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

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

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

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

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

相关推荐
潜心一志3 小时前
HALCON软件——基本架构,算子参数
学习·计算机视觉
言乐64 小时前
Python加速器4跨境网络加速器
运维·服务器·开发语言·网络·python
金金计较.4 小时前
Go语言-3
java·开发语言·golang
爱吃苹果的日记本5 小时前
数据结构第三课(时间复杂度)
数据结构·学习
张小凡vip5 小时前
python--爬虫--经验积累的遇到的坑
开发语言·爬虫·python
疯狂打码的少年6 小时前
【计算机网络】IPv6基础(特点、表示法、与IPv4对比)
网络·笔记·计算机网络
Wang's Blog6 小时前
Java框架快速入门: Spring Security+OAuth2之云服务集成与多因子认证设计
java·开发语言·spring
门思科技6 小时前
LoRaWAN 网络容量估算:一个 SX1302 网关到底能带多少设备
开发语言·网络·php
大草原的小灰灰6 小时前
Python基础语法
开发语言·python
无小道7 小时前
C++——列表初始化
c++·列表初始化