更新:2025-02-14 17:22:46|关注1 人
指针在C++中除了基本的解引用操作(*ptr
)和地址获取操作(&var
)之外,还支持一些算术运算。这些运算主要基于指针所指向的内存地址。
指针加减整数:
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]; // 指向指针的指针
声明:以上是华未云整理的全部内容。本站资源来自及互联网公开收集,仅限学习交流使用,请遵循相关法律法规,如有侵权争议、不妥之处请联系本站删除处理!