1.指针声明int *ptr; // 声明一个指向 int 类型变量的指针 ptr
指针是一个存储变量地址的变量
2.解引用操作符
int a = 10;
int *ptr = &a; // ptr 指向变量 a 的地址
int value = *ptr; // *ptr 解引用操作符,获取 ptr 指向的变量 a 的值,即 value = 10//解引用是通过指针访问其指向的对象的值,
3.指针运算符
int arr[5] = {1, 2, 3, 4, 5};
int *ptr = arr; // ptr 指向数组 arr 的第一个元素//ptr初始化为arr的第一个元素地址
cout << *ptr << endl; // 输出 arr 的第一个元素的值,即 1
ptr++; // 将指针 ptr 向后移动一个位置,指向 arr 的第二个元素
cout << *ptr << endl; // 输出 arr 的第二个元素的值,即 2
下边p指向动态分配的数组首元素,
即p为指向分配的内存空间的起始地址的指针值
int *p=new int[20];//动态分配空间
4.函数返回类型
int* createArray(int size) {
return new int[size]; // 返回一个动态分配的整型数组的指针
}
#include <iostream>
using namespace std;
// 函数声明:创建动态分配的整型数组,并返回指向该数组的指针
int* createArray(int size);
int main() {
int size;
cout << "请输入数组大小:";
cin >> size;
// 调用 createArray 函数,获取动态分配的整型数组的指针
int *arr = createArray(size);
// 使用指针访问和操作动态分配的数组
cout << "动态分配的整型数组:" << endl;
for (int i = 0; i < size; ++i) {
arr[i] = i + 1; // 初始化数组元素的值为 1, 2, 3, ..., size
cout << arr[i] << " ";
}
cout << endl;
// 释放动态分配的数组内存
delete[] arr;
return 0;
}
// 函数定义:创建动态分配的整型数组,并返回指向该数组的指针
int* createArray(int size) {
return new int[size]; // 返回一个动态分配的整型数组的指针
}
5.指针成员访问
class MyClass {
public:
int x;
int y;
};
MyClass obj;
MyClass *ptr = &obj;
ptr->x = 10; // 访问 ptr 所指向对象的成员 x
ptr->y = 20; // 访问 ptr 所指向对象的成员 y