admin 管理员组

文章数量: 1086019


2024年4月21日发(作者:计算机原码反码补码例题)

二级指针的使用例子

1. 在C语言中,可以使用二级指针来实现函数返回多个值的功能。例

如,我们定义一个函数,接受两个整型参数,并通过指针返回这两个

参数的和及差。

```c

#include

void sum_and_difference(int a, int b, int* sum, int*

difference) {

*sum = a + b;

*difference = a - b;

}

int main() {

int a = 10;

int b = 5;

int sum, difference;

sum_and_difference(a, b, &sum, &difference);

printf("Sum: %dn", sum);

printf("Difference: %dn", difference);

return 0;

}

```

在上述例子中,`sum_and_difference`函数接受两个整型参数 `a` 和

`b`,以及两个二级指针 `sum` 和 `difference`。通过在函数内部操

作二级指针,将计算得到的和和差分别赋值给它们,从而实现了多个

返回值的效果。

2. 在C++中,二级指针也可以用于动态内存分配和释放。例如,可以

使用二级指针来动态创建和删除二维数组。

```cpp

#include

void create_2d_array(int rows, int cols, int** arr) {

*arr = new int*[rows];

for (int i = 0; i < rows; i++) {

(*arr)[i] = new int[cols];

}

}

void delete_2d_array(int rows, int** arr) {

for (int i = 0; i < rows; i++) {

delete[] (*arr)[i];

}

delete[] *arr;

}

int main() {

int rows = 3;

int cols = 3;

int** arr;

create_2d_array(rows, cols, &arr);

for (int i = 0; i < rows; i++) {

for (int j = 0; j < cols; j++) {

arr[i][j] = i + j;

std::cout << arr[i][j] << " ";

}

std::cout << std::endl;

}

delete_2d_array(rows, &arr);

return 0;

}

```

在上述例子中,`create_2d_array`函数通过二级指针 `arr`,动态地

创建一个指定行数和列数的二维数组。而`delete_2d_array`函数则通

过二级指针 `arr`,先释放每一行的内存,再释放整个二维数组的内

存,从而达到内存释放的目的。


本文标签: 指针 释放 函数 使用 计算机