Maison >développement back-end >C++ >Maîtriser les scénarios d'application et les différences de * et & en langage C

Maîtriser les scénarios d'application et les différences de * et & en langage C

WBOY
WBOYoriginal
2024-04-03 16:54:02835parcourir

Les pointeurs (*) stockent les adresses des variables et sont utilisés pour accéder et modifier les valeurs des variables. L'opérateur d'adresse (&) obtient l'adresse d'une variable, qui peut être attribuée à un pointeur ou transmise à une fonction. La différence est la suivante : les pointeurs peuvent être déréférencés, tandis que les opérateurs d'adresse eux-mêmes ne peuvent pas accéder aux valeurs des variables.

Maîtriser les scénarios dapplication et les différences de * et & en langage C

Scénarios d'application et différences entre le pointeur (*) et l'opérateur d'adresse (&) en langage C

Pointeur (*)

  • Déclaration : Utiliser le symbole * , suivi du nom de la variable * 符号,后面跟变量名
  • 作用:存储变量的地址
  • 用途:

    • 访问和修改变量的值(通过解引用)
    • 传递变量的地址(作为函数的参数)
    • 实现动态内存分配

地址运算符(&)

  • 声明:使用 & 符号,前面是变量名
  • 作用:获取变量的地址
  • 用途:

    • 将变量的地址赋值给指针
    • 传递变量的地址(作为函数的参数)

区别

  • 指针指向变量的地址,而地址运算符获取变量的地址。
  • 指针可以解引用以访问和修改变量的值,而地址运算符本身不能访问变量的值。

实战案例

以下代码示例演示了指针和地址运算符在 C 语言中的使用:

#include <stdio.h>

int main() {
    int x = 10;

    // 获取 x 的地址并将其赋值给指针 p
    int *p = &x;

    // 使用解引用运算符 * 访问和修改 x 的值
    *p += 5;

    // 打印修改后的 x 值
    printf("x: %d\n", x); // 输出:15

    // 传递 p 指针作为函数的参数
    myFunction(p);

    return 0;
}

void myFunction(int *ptr) {
    // 修改指向值的变量
    *ptr = 20;
}

在这个示例中:

  • *p 解引用指针 p 并访问指向的变量 x。
  • 函数 myFunction 接收指向 x 的指针 p,并通过 *ptr
Fonction : 🎜 Stocker l'adresse de la variable 🎜🎜🎜🎜 Objectif : 🎜🎜🎜🎜 Accéder et modifier la valeur de la variable (par déréférencement) 🎜🎜 Passer l'adresse de la variable (comme un paramètre de la fonction) 🎜 🎜Implémenter l'allocation dynamique de mémoire🎜🎜🎜🎜🎜🎜Opérateur d'adresse (&)🎜🎜🎜🎜🎜Déclaration : 🎜Utiliser le symbole &, précédé du nom de la variable🎜🎜 🎜Fonction : 🎜Obtenir l'adresse de la variable 🎜🎜🎜🎜Utilisation : 🎜🎜🎜🎜Attribuer l'adresse d'une variable à un pointeur 🎜🎜Passer l'adresse d'une variable (en paramètre d'une fonction) 🎜🎜🎜🎜🎜 🎜Différence🎜🎜🎜🎜Le pointeur pointe vers l'adresse de la variable, tandis que l'opérateur d'adresse obtient l'adresse de la variable. 🎜🎜Les pointeurs peuvent être déréférencés pour accéder et modifier la valeur d'une variable, tandis que l'opérateur d'adresse lui-même ne peut pas accéder à la valeur d'une variable. 🎜🎜🎜🎜Cas pratique🎜🎜🎜L'exemple de code suivant démontre l'utilisation des opérateurs de pointeur et d'adresse en langage C : 🎜rrreee🎜Dans cet exemple : 🎜🎜🎜*p Déréférencez le pointeur p et accédez au variable x pointée. 🎜🎜La fonction myFunction reçoit le pointeur p pointant sur x et modifie la valeur de x via *ptr. 🎜🎜

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