📜  C和C++中的指针|集合1(简介,算术和数组)(1)

📅  最后修改于: 2023-12-03 15:14:25.574000             🧑  作者: Mango

C和C++中的指针|集合1(简介,算术和数组)

本篇文章将介绍C和C++中的指针,并涵盖了指针的简介、算术和数组等方面的内容。

1. 简介

指针是一种变量,它存储了一个内存地址。通过使用指针,程序可以直接访问和操纵内存中的数据。指针可以被用于动态内存分配、函数参数传递和数组操作等场景。

在C和C++中,可以使用*声明一个指针变量,并使用&获取一个变量的地址。例如:

int num = 10;
int *p; // 声明一个指向整数的指针
p = # // 将变量num的地址赋值给指针p
2. 指针算术

指针算术允许对指针进行加法、减法和比较运算。这些算术运算对于遍历数组和访问内存块非常有用。

  • 加法:指针加上一个整数会导致指向相应内存位置的指针。例如:

    int arr[] = {1, 2, 3, 4, 5};
    int *p = arr; // 指向数组的第一个元素
    p = p + 2; // 移动指针到第三个元素
    
  • 减法:指针减去一个整数会导致指向相应内存位置的指针。例如:

    int arr[] = {1, 2, 3, 4, 5};
    int *p = &arr[4]; // 指向数组的最后一个元素
    p = p - 2; // 移动指针到第三个元素
    
  • 比较:指针可以进行大小比较运算,例如<>==等。

3. 指针和数组

指针和数组在C和C++中有着紧密的联系。事实上,数组名本身就是一个指向数组第一个元素的指针。

可以通过指针来遍历数组元素,也可以通过指针进行数组元素的赋值和访问。

int arr[] = {1, 2, 3, 4, 5};
int *p = arr; // 指向数组的第一个元素

// 遍历数组并输出每个元素
for(int i = 0; i < 5; i++) {
    cout << *p << endl; // 输出指针当前位置的值
    p++; // 移动指针到下一个位置
}

可以使用指针作为函数参数,实现对数组的传递和修改。

void modifyArray(int *arr, int size) {
    for(int i = 0; i < size; i++) {
        arr[i] = arr[i] * 2;
    }
}

int main() {
    int arr[] = {1, 2, 3, 4, 5};
    int size = sizeof(arr) / sizeof(arr[0]);
    modifyArray(arr, size);
    // 输出修改后的数组
    for(int i = 0; i < size; i++) {
        cout << arr[i] << endl;
    }
    return 0;
}

以上就是关于C和C++中指针的简介、算术和数组的介绍。指针是C和C++中重要的概念,熟练掌握指针的操作对于程序员来说是非常重要的。