Latest web development tutorials

C ++ punteros

El aprendizaje de C ++ punteros fácil y divertido. A través de un puntero, puede simplificar la implementación de algunas de las tareas de programación C ++, hay algunas tareas, como la asignación de memoria dinámica, ningún puntero es inaplicable. Por lo tanto, quiero llegar a ser un buen programador C ++, los punteros de aprendizaje son necesarios.

Como saben, cada variable tiene una posición de memoria, cada posición de memoria define el operador de dirección de acceso puede utilizar el guión (y), lo que representa una dirección en la memoria. Considere los siguientes ejemplos, que definirán la dirección de la variable de salida:

#include <iostream>

using namespace std;

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

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

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

   return 0;
}

Cuando el código se compila y ejecuta, produce los siguientes resultados:

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

A modo de ejemplo anterior, entendemos lo que es una dirección de memoria y cómo acceder a ella. Veamos lo que es un puntero.

¿Qué es un puntero?

Un puntero es una variable cuyo valor es la dirección de otra variable, es decir, la dirección directa de la posición de memoria.Antes de que otras variables o constantes, debe utilizar una dirección de memoria del puntero de otras variables, que se declara. La forma general de una declaración de variable puntero es:

type *var-name;

Aquí, el tipo es un puntero al tipo base, debe ser un tipo dedatos C ++válida,var-name es el nombre de la variable puntero. Se utiliza para declarar un puntero asterisco * multiplicación utilizar el asterisco es el mismo. Sin embargo, en esta declaración, el asterisco se utiliza para especificar una variable es un puntero. La siguiente es una declaración de puntero válido:

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

Todos los indicadores de tipo de datos real del valor, si se trata de un número entero, float, string, u otros tipos de datos son los mismos, es un número hexadecimal representa una dirección de memoria larga. La única diferencia entre los diferentes tipos de puntero de datos, el puntero es un tipo de datos variables o constantes.

El uso de punteros en C ++

Se use con frecuencia el puntero cuando las acciones siguientes: definir una variable de puntero, la dirección de la variable asignada al puntero, acceden al valor de las direcciones disponibles variables puntero. Esto se hace usando el operador unario* para devolver el valor de la variable se encuentra en la dirección de operando especificado.Los siguientes ejemplos se refieren a estas acciones:

#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;
}

Cuando el código se compila y ejecuta, produce los siguientes resultados:

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

C ++ puntero Explicación

En C ++, hay muchos conceptos relacionados punteros que son muy simples, pero muy importante. La siguiente lista de programador de C ++ debe estar al tanto de algunos conceptos importantes asociados con el puntero:

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