English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Operatori di puntatore in C++ (& e *)

运算符C++

C++ fornisce due operatori di puntatore, uno è l'operatore di indirizzo & e l'altro è l'operatore di indirizzamento indiretto *.

Un puntatore è una variabile che contiene l'indirizzo di un'altra variabile, puoi dire che una variabile che contiene l'indirizzo di un'altra variabile è "che punta" a un'altra variabile. La variabile può essere di qualsiasi tipo di dati, inclusi gli oggetti, le strutture o i puntatori.

Operatore di indirizzo &

L'operatore & è un operatore unario che restituisce l'indirizzo di memoria dell'operando. Ad esempio, se var è una variabile di tipo int, allora &var è il suo indirizzo. L'operatore ha la stessa priorità degli altri operatori unari e viene eseguito dall'estrema destra verso sinistra.

Puoi leggere l'operatore & comeoperatore di indirizzo, il che significa che,&var si legge "indirizzo di var".

Operatore di indirizzamento indiretto *

Il secondo operatore è l'operatore di indirizzamento indiretto *, è un supplemento dell'operatore &. * è un operatore unario che restituisce il valore della variabile specificata dall'operando.

Ecco un esempio per comprendere l'uso di questi operatori.

#include <iostream>
 
using namespace std;
 
int main ()
{
   int var;
   int *ptr;
   int  val;
   var = 3000;
   // 获取 var 的地址
   ptr = &var;
   // 获取 ptr 的值
   val = *ptr;
   cout << "var的值 :" << var << endl;
   cout << "ptr的值 :" << ptr << endl;
   cout << "val的值 :" << val << endl;
   return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:

var的值 :3000
ptr的值 :0xbff64494
val的值 :3000

运算符C++