C++指针比较大小(详解版)

C++指针


内存地址的大小关系
图 1 内存地址的大小关系


&array[1] > &array[0]
array < &array[4]
array == &array[0]
&array[2] != &array[3]


if (ptr1 < ptr2)


if (*ptr1 < *ptr2)

// This program uses a pointer to display the contents of an integer array. It illustrates the comparison of pointers.
#include <iostream>
using namespace std;

int main()
{
    const int SIZE = 8;
    int set[ ] = {5, 10, 15, 20, 25, 30, 35, 40};
    int *numPtr = set; // Make numPtr point to set
    cout << "The numbers in set are: \n";
    cout << *numPtr << " "; // Display first element
    while (numPtr < &set[SIZE-1])
    {
        // Advance numPtr to the next element
        numPtr++;
        // Display the value pointed to by numPtr
        cout << *numPtr << " ";
    }
    //Display the numbers in reverse order
    cout << "\nThe numbers in set backwards are:\n";
    cout << *numPtr << " ";    // Display last element
    while (numPtr > set)
    {
        // Move backward to the previous element
        numPtr--;
        // Display the value pointed to by numPtr
        cout << *numPtr <<" ";
    }
    return 0;
}

The numbers in set are:
5 10 15 20 25 30 35 40
The numbers in set backwards are:
40 35 30 25 20 15 10 5


if (ptrToInt != nullptr)
    cout << *ptrToInt;
else
    cout << "null pointer";


推荐文章
Java程序的基本要素

尽管《Java程序应用实例》一节中的实例很简单,但它包括所有Java程序具有的基本要素及几个关键特性。现在以《Java程序应用实例》中的HelloJava.java为例说明Java程序的基本要素及编码

C语言const的用法详解,C语言常量定义详解

有时候我们希望定义这样一种变量,它的值不能被改变,在整个作用域中都保持固定。例如,用一个变量来表示班级的最大人数,或者表示缓冲区的大小。为了满足这一要求,可以使用const关键字对变量加以限定:

C++ adjacent_find(STL adjacent_find)算法使用详解

adjacent_find()算法可以用来搜索序列中两个连续相等的元素。用==运算符来比较连续的一对元素,返回的迭代器指向前两个相等元素中的第一个。如果没有一对相等的元素,这个算法返回这个序列的结束迭

wps常用快捷键有哪些?

WPS文字快捷键1.Ctrl+A全选2.Ctrl+B加粗3.Ctrl+C复制4.Ctrl+D字体5.Ctrl+E居中6.Ctrl+F查找7.Ctrl+G定位8.Ctrl+H替换9.Ctrl+I倾斜10

C语言猴子吃桃问题

猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将第一天剩下的桃子吃掉一半,有多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,发

数据管理技术经历了哪三个阶段?

数据管理技术是指对数据进行分类、编码、存储、检索和维护,它是数据处理的中心问题。随着计算机技术的不断发展,在应用需求的推动下,在计算机硬件、软件发展的基础上数据管理技术经历了人工管理、文件系统、数据库

Java截取新闻标题

在新闻网站中通常以列表的形式显示最新新闻的动态标题。一般情况下,一行显示一条新闻标题,而新闻标题往往比较长,因此需要对它进行截取,将超出部分显示成一个省略号“…”。 下面编写Java代码,实现使用字

PHP imagesx()和imagesy():获取图像的宽度和高度

在PHP中,除了可以使用 getimagesize()或者 getimagesizefromstring()获取图像的全部尺寸信息,还可以使用 imagesx()和 imagesy()分别获取图像的宽

Spring Cloud Gateway整合Eureka路由转发

本节我们先创建一个Gateway项目,然后实现了一个最简单的转发功能,并进行Eureka路由的整合。 创建Gateway项目 创建一个SpringBoot的Maven项目,增加SpringCloud

主成分分析法(PCA)原理和步骤(超级详细)

主成分分析(PrincipalComponentAnalysis,PCA)是一种多变量统计方法,它是最常用的降维方法之一,通过正交变换将一组可能存在相关性的变量数据转换为一组线性不相关的变量,转换后的

Shell(Bash)用户自定义变量使用方法详解

用户自定义变量是最常用的变量类型,其特点是变量名和变量值都是由用户自由定义的。 那么,该如何定义变量呢?很简单,只需执行"变量名=变量值"命令即可,不过要遵守变量定义规则。例如: [root@lo

MATLAB日期和时间处理

MATLAB中规定了3种日期和时间格式——日期字符、序列日期数和日期向量,分别举例如下: 日期字符'25-Nov-201909:58:59' 日期向量[20191125095859] 序列日期

C++ const用法详解

我们知道,在程序运行时不会更改的值可以作为常数存储。但是,有时这种做法并不是很理想。例如,假设以下语句出现在计算有关贷款数据的银行程序中: amount=balance*0.069; 在这个程序中,

分布式数据库有哪些特点?

大数据需要通过分布式的集群方式来解决存储和访问的问题。分布式系统的核心理念是让多台服务器协同工作,完成单台服务器无法处理的任务,尤其是高并发或者大数据量的任务。 分布式数据库是数据库技术与网络技术相

内存分页机制完全攻略

分段允许进程的物理地址空间是非连续的。分页是提供这种优势的另一种内存管理方案。然而,分页避免了外部碎片和紧缩,而分段不可以。 不仅如此,分页还避免了将不同大小的内存块匹配到交换空间的问题,在分页引入

Linux usermod命令:修改用户信息

前面章节介绍了如何利用useradd命令添加用户,但如果不小心添错用户信息,后期如何修改呢? 办法有两个,一个是使用Vim文本编辑器手动修改涉及用户信息的相关文件(/etc/passwd、/etc/

HBase的安装与配置(非常详细)

本节讲述如何安装、部署HBase集群,以及如何通过命令行方式来完成HBase集群的启动和停止。 首先介绍部署HBase之前需要做的准备工作,如Java、SSH和Hadoop这些先决条件的配置;然后介

switch case语句,switch case用法详解

switch是“开关”的意思,它也是一种“选择”语句,但它的用法非常简单。switch是多分支选择语句。说得通俗点,多分支就是多个if。 从功能上说,switch语句和if语句完全可以相互取代。但从

.NET Core是什么?

.NETCore是适用于Windows、Linux和macOS的免费、开源托管的计算机软件框架,是微软开发的第一个官方版本,具有跨平台能力的应用程序开发框架(ApplicationFramework)

docker是干什么的?

docker是什么?是干什么的?docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙