Latest web development tutorials

C ++ puntatori

Imparare C ++ puntatori facile e divertente. Attraverso un puntatore, è possibile semplificare l'attuazione di alcune delle attività di programmazione C ++, ci sono alcuni compiti, come allocazione dinamica della memoria, senza puntatore è inapplicabile. Quindi, voglio diventare un buon programmatore C ++, puntatori di apprendimento sono necessari.

Come sapete, ogni variabile ha una posizione di memoria, ogni locazione di memoria definisce l'operatore di indirizzo di accesso è possibile utilizzare il trattino (&), che rappresenta un indirizzo nella memoria. Considerate i seguenti esempi, che definiranno l'indirizzo variabile di uscita:

#include <iostream>

using namespace std;

int main ()
{
   int  var1;
   char var2[10];

   cout << "var1 变量的地址: ";
   cout << &var1 << endl;

   cout << "var2 变量的地址: ";
   cout << &var2 << endl;

   return 0;
}

Quando il codice di cui sopra è compilato ed eseguito, produce i seguenti risultati:

var1 变量的地址: 0xbfebd5c0
var2 变量的地址: 0xbfebd5b6

A titolo di esempio di cui sopra, si capisce che cosa un indirizzo di memoria e come accedervi. Diamo un'occhiata a quello che è un puntatore.

Che cosa è un puntatore?

Un puntatore è una variabile il cui valore è l'indirizzo di un'altra variabile, vale a dire, l'indirizzo diretto della locazione di memoria.Prima Come altre variabili o costanti, è necessario utilizzare un indirizzo di memoria puntatore di altre variabili, si dichiara. La forma generale di una dichiarazione di variabile puntatore è:

type *var-name;

Qui tipo è un puntatore al tipo base, deve essere un tipo didati valida C++,var-name è il nome della variabile puntatore. Viene utilizzato per dichiarare un puntatore asterisco * moltiplicazione utilizzare l'asterisco è lo stesso. Tuttavia, in questa dichiarazione, l'asterisco viene utilizzato per specificare un puntatore variabile. Quanto segue è una dichiarazione puntatore valido:

int    *ip;    /* 一个整型的指针 */
double *dp;    /* 一个 double 型的指针 */
float  *fp;    /* 一个浮点型的指针 */
char   *ch     /* 一个字符型的指针 */

Tutti i puntatori attuale tipo di dati del valore, se si tratta di un numero intero, float, string, o altri tipi di dati sono gli stessi, è un numero esadecimale rappresenta un indirizzo di memoria lunga. L'unica differenza tra i diversi tipi di puntatore di dati, il puntatore è una tipi di dati variabili o costanti.

Usando puntatori in C ++

Frequentemente utilizzare il puntatore quando le seguenti azioni: per definire una variabile puntatore, l'indirizzo variabile assegnata al puntatore, l'accesso il valore degli indirizzi disponibili variabile puntatore. Questo viene fatto utilizzando l'operatore unario* per tornare in cui si trova l'indirizzo operando specificato il valore della variabile.I seguenti esempi si riferiscono a queste azioni:

#include <iostream>

using namespace std;

int main ()
{
   int  var = 20;   // 实际变量的声明
   int  *ip;        // 指针变量的声明

   ip = &var;       // 在指针变量中存储 var 的地址

   cout << "Value of var variable: ";
   cout << var << endl;

   // 输出在指针变量中存储的地址
   cout << "Address stored in ip variable: ";
   cout << ip << endl;

   // 访问指针中地址的值
   cout << "Value of *ip variable: ";
   cout << *ip << endl;

   return 0;
}

Quando il codice di cui sopra è compilato ed eseguito, produce i seguenti risultati:

Value of var variable: 20
Address stored in ip variable: 0xbfc601ac
Value of *ip variable: 20

C ++ puntatore Spiegazione

In C ++, ci sono molti puntatori concetti relativi che sono molto semplici, ma molto importante. Di seguito sono elencati C ++ programmatore deve essere a conoscenza di alcuni concetti importanti associati con il puntatore:

概念描述
C++ Null 指针 C++ 支持空指针。NULL 指针是一个定义在标准库中的值为零的常量。
C++ 指针的算术运算 可以对指针进行四种算术运算:++、--、+、-
C++ 指针 vs 数组 指针和数组之间有着密切的关系。
C++ 指针数组 可以定义用来存储指针的数组。
C++ 指向指针的指针 C++ 允许指向指针的指针。
C++ 传递指针给函数 通过引用或地址传递参数,使传递的参数在调用函数中被改变。
C++ 从函数返回指针 C++ 允许函数返回指针到局部变量、静态变量和动态内存分配。