C++ 指针


C++指针是一种非常重要的数据类型,它被广泛应用于程序开发中。指针是一种变量,它存储了一个内存地址。这个地址所指向的内存单元可以存储一个变量的值。

指针可以被定义成任何数据类型,包括整数、字符、浮点数、数组、结构体和其他指针类型。一个指针变量具有两个组成部分:类型和地址。

指针变量的定义通常采用星号 “*” 符号,在变量名之前。例如,如果要定义一个指向整数的指针,可以使用以下代码:

int* ptr;

这将创建一个指针变量 ptr,它可以指向一个整数变量。

要将指针指向一个特定的变量,可以使用取地址符 “&"。例如,要将指针 ptr 指向一个名为 num 的整数变量,可以使用以下代码:

int num = 10;
int* ptr = #

现在,指针变量 ptr 包含变量 num 的地址。要访问存储在指针所指向的变量中的值,可以使用星号 “* “符号,这称为解除引用运算符。例如,以下代码将输出变量 num 的值:

cout << *ptr << endl;

同时,指针也可以作为函数参数,这通常被称为传递指针。这个过程可以让函数访问指针所指向的变量,并将变量的值修改为函数所需的值。例如:

void square(int* ptr) {
  *ptr = (*ptr) * (*ptr);
}

int main() {
  int num = 10;
  square(&num);
  cout << num << endl;
}

这将输出100,因为传递给square()函数的是指向num变量的指针。

指针还可以用于动态内存分配。例如,以下代码将创建一个指向整数的指针数组,并在程序执行期间分配适当大小的存储空间:

int size = 5;
int* arr = new int[size];

这将分配一个可以存储5个整数的数组。要访问数组中的每个元素,可以使用指针的算术运算符。例如,以下代码将记录数组的第三个元素的地址,并输出该元素的值:

int* ptr = arr + 2; //记录数组的第三个元素的地址
cout << *ptr << endl; //输出第三个元素的值

指针是一种非常强大的数据类型,它可以让程序员轻松地访问内存中的数据,并编写更加灵活和动态的代码。然而,因为指针不像其他变量类型那样容易理解,因此需要小心处理指针,以避免潜在的指针错误。