首页 > 编程技术 > C语言

C/C++编程语言中的指针(pointer)你了解吗

发布时间:2022-2-28 10:22 作者:liitdar

1 What

指针,是 C/C++ 编程语言中的一个重要概念。指针通常可以理解为内存地址,而指针变量就是用来存放内存地址的变量。在同一 CPU 架构下,不同类型的指针变量所占用的存储单元的长度是相同的(而存放数据的变量因数据类型的不同,所占用的存储空间长度也不同)。例如,在 64 位操作系统(安装在 X64 CPU 架构之上)中,指针变量占用 8 字节。通过使用指针,不仅可以对数据本身进行操作,也可以对存储该数据的变量地址进行操作。

在 C/C++ 编程语言中,指针变量存储的是其指向的对象的首地址,指针指向的对象可以是变量(注意,指针变量也是变量)、数组、函数、对象等占据存储空间的实体。

下面通过一个简单的指针及其指向对象的信息关系图来进一步介绍指针。现假设有一个字符变量“c”,其内容为“A”,又有一个名称为“pChar”的指针(变量)指向该字符变量,因此字符变量“c”与指向其的指针“pChar”关系如下图所示:

 通过上图内容,可知:

2 用法示例

在本章中,将通过示例代码来介绍 C/C++ 编程语言中指针的具体用法。

2.1 示例

示例1的代码内容如下:

#include <iostream>
using namespace std;
int main()
{
    char c = 'A';
    cout << "c is: " << c << endl;
    cout << "address of c is: " << (void*)&c << endl << endl;
    char* pChar1 = &c;
    cout << "*pChar1 is: " << *pChar1 << endl;
    cout << "pChar1 is: " << (void*)pChar1 << endl;
    cout << "address of pChar1 is: " << &pChar1 << endl << endl;
    char* pChar2 = pChar1;
    cout << "*pChar2 is: " << *pChar2 << endl;
    cout << "pChar2 is: " << (void*)pChar2 << endl;
    cout << "address of pChar2 is: " << &pChar2 << endl << endl;
    char** pChar3 = &pChar2;
    cout << "**pChar3 is: " << **pChar3 << endl;
    cout << "*pChar3 is: " << (void*)(*pChar3) << endl;
    cout << "pChar3 is: " << (void*)pChar3 << endl;
    cout << "address of pChar3 is: " << &pChar3 << endl << endl;
    return 0;
}

编译并执行上述代码,(可能的)结果如下:

通过上述代码及其执行结果,可知:

本例的指针及其指向的对象的相关信息,如下图所示:

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注猪先飞的更多内容!      

原文出处:https://blog.csdn.net/liitdar/article/details/123153943

标签:[!--infotagslink--]

您可能感兴趣的文章: