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

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

C和C++中的指针|集合1

指针(pointer)是C和C++非常重要的概念,也是新手难以掌握的一部分。本文将简要介绍C和C++中指针的基本知识,包括指针的概述,指针的算术操作,以及指向数组的指针。

指针的概述

指针是指向内存中某个地址的变量。每个变量在内存中都占据一个地址,通过指针可以获得该地址并访问该变量。

在C和C++中,通过使用“*”符号来声明指针。例如,下面的代码声明了一个指向整数类型的指针:

int *ptr;

该代码声明了一个名为“ptr”的变量,该变量是一个指针,指向整数类型的值。

要访问指针指向的地址中的值,可以使用“*”符号。例如,下面的代码将值2存储在指针“ptr”指向的地址中:

*ptr = 2;

上述代码将值2存储在指针“ptr”指向的地址中,这个地址可能是已经分配给某个变量的内存地址,也可能是新申请的空闲内存地址。

指针的算术操作

在C和C++中,可以通过指针进行算术操作。这些操作包括将指针向右或向左移动任意数量的字节,以及将两个指针相加或相减。

例如,下面的代码将指针“ptr”向右移动2个整数类型的字节:

ptr = ptr + 2;

上述代码将指针“ptr”向右移动了两个整数类型的字节。如果原始指针“ptr”指向的地址是1000,那么执行上述代码后,“ptr”将指向1008。

类似地,下面的代码将两个指针相加:

int *ptr1;
int *ptr2;

int *ptr3 = ptr1 + ptr2;

上述代码将指针“ptr3”设置为“ptr1”和“ptr2”的和。如果“ptr1”指向地址1000,而“ptr2”指向地址1008,那么执行上述代码后,“ptr3”将指向地址2016。

指向数组的指针

在C和C++中,可以把指针用于访问数组元素。例如,下面的代码声明了一个指向整数类型的指针“ptr”,并将其设置为指向整数数组的第一个元素:

int arr[5] = {1, 2, 3, 4, 5};
int *ptr = arr;

上述代码将指针“ptr”设置为指向数组“arr”的第一个元素。此时,“ptr”指向地址1000,因为“arr[0]”位于地址1000处。

我们还可以使用算术操作来访问数组的其他元素。例如,下面的代码访问数组的第二个元素:

int second = *(ptr + 1);

上述代码将访问地址1004处的值,也就是数组的第二个元素。

结语

本文介绍了C和C++中指针的基础知识,包括指针的概述、指针的算术操作和指向数组的指针。指针是C和C++非常重要的概念,希望本文能为各位程序员提供一些帮助。