O melhor tutorial ponteiros C ++ em 2024. Neste tutorial você pode aprender O que é um ponteiro?,Usando ponteiros em C ++,C ++ Explicação ponteiro,
Aprender C ++ ponteiros fácil e divertido. Através de um ponteiro, você pode simplificar a implementação de algumas das ++ tarefas de programação C, há algumas tarefas, como a alocação dinâmica de memória, nenhum ponteiro é inexequível. Então, eu quero me tornar um bom programador C ++, ponteiros de aprendizagem são necessárias.
Como você sabe, cada variável tem um local de memória, cada local de memória define o endereço-de operador de acesso pode usar o hífen (&), o que representa um endereço na memória. Considere os seguintes exemplos, que vão definir o endereço variável de saída:
#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 o código acima é compilado e executado, ele produz os seguintes resultados:
var1 变量的地址: 0xbfebd5c0 var2 变量的地址: 0xbfebd5b6
A título de exemplo acima, entendemos que um endereço de memória e como acessá-lo. Vamos olhar para o que é um ponteiro.
Um ponteiro é uma variável cujo valor é o endereço da outra variável, ou seja, o endereço directa do local de memória.Antes Como outras variáveis ou constantes, você deve usar um endereço de memória ponteiro de outras variáveis, é declarada. A forma geral de uma declaração de variável ponteiro é:
type *var-name;
Aqui, o tipo é um ponteiro para o tipo de base, que deve ser uma válida C ++ tipos de dados,var-nome é o nome da variável de ponteiro. É usado para declarar um ponteiro asterisco * multiplicação usar o asterisco é o mesmo. No entanto, nesta declaração, o asterisco é usado para especificar uma variável é um ponteiro. O que se segue é uma declaração ponteiro válido:
int *ip; /* 一个整型的指针 */ double *dp; /* 一个 double 型的指针 */ float *fp; /* 一个浮点型的指针 */ char *ch /* 一个字符型的指针 */
Todos os ponteiros de tipo de dados real do valor, se é um número inteiro, flutuador, corda, ou outros tipos de dados são a mesma, é um número hexadecimal representa um endereço de memória de longo. A única diferença entre os diferentes tipos de ponteiro de dados, o ponteiro é um tipo de dados variáveis ou constantes.
Irá utilizar frequentemente o ponteiro quando as seguintes ações: definir uma variável ponteiro, o endereço variável atribuída ao ponteiro, acessar o valor da variável ponteiro endereços disponíveis. Isto é feito usando o operador unária* para retornar o valor da variável está localizado no endereço do operando especificado.Os exemplos a seguir referem-se a essas ações:
#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 o código acima é compilado e executado, ele produz os seguintes resultados:
Value of var variable: 20 Address stored in ip variable: 0xbfc601ac Value of *ip variable: 20
Em C ++, existem muitos ponteiros conceitos relacionados que são muito simples, mas muito importante. O seguinte listas programador C ++ deve estar ciente de alguns conceitos importantes associados com o ponteiro:
概念 | 描述 |
---|---|
C++ Null 指针 | C++ 支持空指针。NULL 指针是一个定义在标准库中的值为零的常量。 |
C++ 指针的算术运算 | 可以对指针进行四种算术运算:++、--、+、- |
C++ 指针 vs 数组 | 指针和数组之间有着密切的关系。 |
C++ 指针数组 | 可以定义用来存储指针的数组。 |
C++ 指向指针的指针 | C++ 允许指向指针的指针。 |
C++ 传递指针给函数 | 通过引用或地址传递参数,使传递的参数在调用函数中被改变。 |
C++ 从函数返回指针 | C++ 允许函数返回指针到局部变量、静态变量和动态内存分配。 |