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++ 允许函数返回指针到局部变量、静态变量和动态内存分配。 |