Maison >développement back-end >C++ >Analyse et comparaison des opérateurs * et & en langage C
En langage C, l'opérateur astérisque (*) est utilisé pour déréférencer une variable pointeur et obtenir la valeur de la variable pointée ; l'opérateur d'adresse (&) est utilisé pour obtenir l'adresse de la variable. La comparaison spécifique est la suivante : Pointeur de déréférencement : *Obtenir l'adresse : & multiplication du pointeur : *Opération sur bits : &
Analyse et comparaison des opérateurs * et & en langage C
En langage C, astérisque (* ) et l'opérateur d'adresse (&) sont deux opérateurs importants qui sont souvent utilisés pour les opérations de pointeur et la gestion de la mémoire. Cet article analysera en profondeur leurs utilisations et leurs différences, et proposera des cas pratiques pour illustrer.
Opérateur Étoile (*)
Par exemple :
Opérateur d'adresse Opérateur ( &)
Par exemple :
Opérateurs de comparaison
Ce qui suit est la comparaison des opérateurs * et & dans différents scénarios :
Opérateur | Scénario | Fonction |
---|---|---|
* | Pointeur de déréférencement | Obtenez le valeur pointant vers la variable |
& | Obtenir l'adresse | Obtenir l'adresse de la variable |
* | Multiplication du pointeur | Calculer la taille de l'espace mémoire pointé par le pointeur |
& | Opération au niveau des bits (ET logique) | Effectuer une opération ET logique sur deux entiers |
Cas pratique
Ce qui suit est un cas pratique qui montre comment les opérateurs * et & sont utilisés pour les opérations de pointeur :
#include <stdio.h> int main() { int i = 10; int *ptr = &i; // ptr指向i // 通过解引用指针获取i的值 printf("i的值:%d\n", *ptr); // 通过取地址获取i的地址 printf("i的地址:%p\n", &i); // 通过指针乘法计算ptr指向的内存空间大小 int size = sizeof(*ptr); printf("ptr指向内存空间大小:%d字节\n", size); // 使用指针进行递增 (*ptr)++; // 打印递增后的i值 printf("递增后的i:%d\n", i); return 0; }
Sortie :
i的值:10 i的地址:0x7ffe5247ef4c ptr指向内存空间大小:4字节 递增后的i:11
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!