跳到主要内容

指针和引用

一、指针概念

1.声明指针

C/C++ 提供了直接操作内存的能力:指针。指针有两个要素:

  • 操作的内存地址
  • 操作的内存大小

指针语法:

数据类型* 指针名;

定义指针一定要初始化! 数据类型* 指针名{};

2.取地址

利用取地址符号 & 获取变量的地址

// 定义一个int类型的变量a,并初始化为10
int a{10};

// p是一个指针,指向a的地址
int* p{&a};

3.解引用

利用解引用符号 * (间接运算符)访问指针指向的内存

// 通过解引用操作符*访问指针p指向的内存,并将值赋给变量b
// b的值为10
int b{*p};

二、指针数组

指针数组是一个数组,数组中的每个元素都是一个指针。指针数组可以用来存储多个变量的地址,从而实现对这些变量的间接访问。

#include <iostream>

int main() {
int a{10};
int b{20};
int c{30};

// 定义一个指针数组,包含3个int类型的指针
int* arr[3]{&a, &b, &c};

// 通过指针数组访问变量的值
for (int i = 0; i < 3; ++i) {
std::cout << "Value at arr[" << i << "] = " << *arr[i] << std::endl;
}

return 0;
}