Maison  >  Article  >  développement back-end  >  Comment fonctionne l’arithmétique des pointeurs en C++ ?

Comment fonctionne l’arithmétique des pointeurs en C++ ?

王林
王林original
2024-06-03 20:28:02490parcourir

L'arithmétique des pointeurs est un moyen de manipuler des pointeurs en C++, permettant des opérations d'addition, de soustraction et de multiplication sur des pointeurs. Ces opérations peuvent être utilisées pour accéder aux éléments du tableau et aux caractères de chaîne.

指针的算术运算在 C++ 中如何工作?

Comment fonctionne l'arithmétique des pointeurs en C++

Un pointeur est un type de variable qui stocke l'adresse d'autres variables. L'arithmétique du pointeur permet l'addition, la soustraction et la multiplication des valeurs du pointeur. Ceci est utile lors de l'accès aux éléments du tableau et aux caractères de chaîne.

Opération d'addition

  • L'ajout d'un entier à un pointeur ajoutera le nombre d'octets correspondant à l'adresse pointée par le pointeur.
  • Par exemple, si ptr pointe vers l'adresse d'une variable de type int, ptr + 1 pointera vers le suivant int L'adresse de l'élément. ptr 指向一个 int 类型变量的地址,ptr + 1 将指向下一 int 元素的地址。

减法运算

  • 指针减一个整数会在指针指向的地址上减少相应的字节数。
  • 与加法运算类似,它用于访问数组或者字符串中的更早元素。

乘法运算

  • 指针乘以一个表示元素大小的整数会使指针指向数组或字符串中相应索引的元素。
  • 例如,如果数组 arr 中每个元素大小为 4 字节,arr[2] 等价于 *(arr + 2)

Opération de soustraction

Soustraire un entier d'un pointeur réduira le nombre d'octets correspondant à l'adresse pointée par le pointeur.

🎜Semblable à l'opération d'addition, elle est utilisée pour accéder aux éléments antérieurs d'un tableau ou d'une chaîne. 🎜🎜🎜🎜 Multiplication 🎜🎜🎜🎜 En multipliant un pointeur par un entier représentant la taille de l'élément, le pointeur pointe vers l'élément à l'index correspondant dans le tableau ou la chaîne. 🎜🎜Par exemple, si la taille de chaque élément du tableau arr est de 4 octets, arr[2] équivaut à *(arr + 2). 🎜🎜🎜🎜Cas pratique🎜🎜🎜Ce qui suit est un fragment de programme C++ montrant l'arithmétique du pointeur : 🎜<pre class='brush:cpp;toolbar:false;'>#include &lt;iostream&gt; using namespace std; int main() { // 定义一个数组 int arr[] = {1, 2, 3, 4, 5}; // 获得数组第一个元素的指针 int *ptr = arr; // 使用指针算术访问数组元素 cout &lt;&lt; *ptr &lt;&lt; endl; // 输出 1 cout &lt;&lt; *(ptr + 1) &lt;&lt; endl; // 输出 2 return 0; }</pre>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn