C++程序 使用指针访问数组元素

C++程序 使用指针访问数组元素

C++中,数组是一种很常见的数据结构,而指针则是一种很灵活的工具。使用指针访问数组元素是C++程序中非常常见的操作。在这篇文章中,我们将介绍如何使用指针访问数组元素。

数组与指针

在C++中,数组是一块连续的内存块,用于存储同种类型的元素。数组的名称即为该数组的第一个元素的地址。例如:

int arr[5] = {1, 2, 3, 4, 5};
std::cout << arr << std::endl;  // 输出:0x7ffd5363d2d0

上面的代码输出了arr数组的地址。可以看到,该地址与arr[0]的地址是一样的。因为arr[0]就是数组的第一个元素。

指针是一个变量,它存储了某个内存地址。指针变量可以指向任何类型的数据,并且可以修改指向的地址。例如:

int x = 10;
int* p = &x;
std::cout << p << std::endl;  // 输出:0x7ffd5363d2c8

上面的代码中,我们创建了一个名为p的指针变量,它指向x的地址。可以看到,p的值与&x的值是一样的。

使用指针访问数组元素

在C++中,可以使用指针访问数组元素。为了访问数组的第i个元素,可以使用以下语法:

*(arr + i)

其中,arr是数组的名称,i是要访问的元素的下标。该语法首先获取arr数组的起始地址,然后加上i个元素的大小,最后用解引用操作符*获取指针指向的值。

下面是一个使用指针访问数组元素的例子:

int arr[5] = {1, 2, 3, 4, 5};
int* p = arr;
for (int i = 0; i < 5; i++) {
    std::cout << *(p + i) << " ";
}
// 输出:1 2 3 4 5

上面的代码中,我们创建了一个指向arr数组的指针p,然后使用循环访问数组中的每一个元素。

使用指针作为数组参数

在C++中,可以将指针作为函数的参数来传递数组。下面是一个使用指针作为数组参数的例子:

void print_arr(int* arr, int size) {
    for (int i = 0; i < size; i++) {
        std::cout << *(arr + i) << " ";
    }
}

int main() {
    int arr[5] = {1, 2, 3, 4, 5};
    print_arr(arr, 5);
    // 输出:1 2 3 4 5
    return 0;
}

上面的代码中,我们定义了一个名为print_arr的函数,它接受一个指向int类型的指针和一个整数作为参数。在函数中,我们使用指针访问数组元素,并打印出每一个元素的值。

main函数中,我们创建了一个arr数组,然后调用了print_arr函数,并传递了该数组的地址和大小作为参数。

使用指针数组

指针数组是一种数组,其中每个元素都是一个指针。可以使用指针数组来存储多个值,并通过指针访问它们。下面是一个使用指针数组的例子:

int main() {
    int x=10, y=20, z=30;
    int* arr[3] = {&x, &y, &z};
    for (int i = 0; i < 3; i++) {
        std::cout << *(arr[i]) << " ";
    }
    // 输出:10 20 30
    return 0;
}

上面的代码中,我们定义了三个整型变量xyz,然后创建了一个指针数组arr,其中每个元素都是一个指向整型变量的指针。

在循环中,我们使用指针访问数组元素,并将每个元素的值打印出来。

使用数组名作为指针

正如本文一开始所说的,数组名即为数组的第一个元素的地址,因此可以将数组名作为指针传递给函数,或者直接使用它访问数组元素。下面是一个使用数组名作为指针的例子:

void print_arr(int* arr, int size) {
    for (int i = 0; i < size; i++) {
        std::cout << *(arr + i) << " ";
    }
}

int main() {
    int arr[5] = {1, 2, 3, 4, 5};
    print_arr(arr, 5);
    // 输出:1 2 3 4 5
    std::cout << *(arr + 2) << std::endl;  // 输出:3
    return 0;
}

在上面的代码中,我们定义了一个名为print_arr的函数,该函数接受一个指向int类型的指针和一个整数作为参数。我们在main函数中创建了一个arr数组,并将该数组名作为指针传递给print_arr函数来打印它的元素。

除此之外,我们也可以直接使用数组名来访问数组元素。例如,*(arr + 2)就可以访问arr[2]的值。

结论

使用指针访问数组元素是C++程序中非常常见的操作。在本文中,我们讨论了如何使用指针访问数组元素、如何将指针作为数组参数、如何使用指针数组、以及如何使用数组名作为指针。希望这篇文章可以帮助你更好地理解指针和数组,提升你的C++编程能力。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

C++ 示例