关注我们
  • 公众号

  • 抖音号

  • 小程序

联系方式: 400-8162-938
栏目导航

c++的指针运算

来源:华未云

更新:2025-02-14 17:22:46|关注1

        指针在C++中除了基本的解引用操作(*ptr)和地址获取操作(&var)之外,还支持一些算术运算。这些运算主要基于指针所指向的内存地址。

  1. 指针加减整数

  2.     i.可以对指针进行加减一个整数操作,结果是指针向前或向后移动相应的内存单元数(每个单元的大小由指针类型决定)。

int arr[10];
int *ptr = arr; // ptr 指向数组的第一个元素
ptr++; // ptr 现在指向数组的第二个元素
ptr += 3; // ptr 现在指向数组的第四个元素

    2.指针相减

        i.两个相同类型的指针相减,结果是它们之间元素的个数(整数类型)。

int arr[10];
int *ptr1 = &arr[2];
int *ptr2 = &arr[7];
int diff = ptr2 - ptr1; // diff 的值是 5

    3.指针比较

        i.可以比较两个指针是否相等、不等、大于或小于。比较的依据是指针所指向的内存地址。

int arr[10]; int *ptr1 = &arr[2]; int *ptr2 = &arr[5]; if (ptr1 < ptr2) {    // ptr1 指向的内存地址小于 ptr2 指向的内存地址 }

    4.空指针检查

        i.指针可以与 nullptr 进行比较,以检查它是否指向任何有效的内存地址。

int *ptr = nullptr;
if (ptr == nullptr) {
    // ptr 是空指针
}

    5.指针数组与指向指针的指针

        i.可以定义指针数组,即数组的每个元素都是指针。

        ii.也可以定义指向指针的指针,即指针本身指向另一个指针。

int *arr[10]; // 指针数组
int **ptr = &arr[0]; // 指向指针的指针


声明:以上是华未云整理的全部内容。本站资源来自及互联网公开收集,仅限学习交流使用,请遵循相关法律法规,如有侵权争议、不妥之处请联系本站删除处理!