Latest web development tutorials

ponteiros C ++

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.

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.

Usando ponteiros em C ++

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

C ++ Explicação ponteiro

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