Estructura de Datos - Puntero

puntero

concepto:

(1) p es una variable de puntero / dirección (la dirección de memoria es una variable), que es el valor (p almacenado) la dirección de una variable.

p recibida (en el) dirección qué variable, lo que apunta a una variable. La variable se convierten en el objeto de p.

(2) Valor p * de p es objeto puntiagudo.

→ * p es un valor, el valor de la variable a punto

 

principio

(1) * parámetros indicativos sólo por detrás con la dirección, p *

(2) y por detrás con única variable. Y un parámetro que indica la dirección de una

(3) '=' es la asignación por defecto sólo permiten el mismo tipo de parametrización (si la asignación será la misma, pero los resultados serán incorrectos)

→ solo, (puntero) asignado a la dirección (puntero) Dirección

valores (variable) asignados a la (variable) Valores

 

definiciones

Define el tipo de base puntero Elemtype * elem;

(ElemType tipo de contenido unidad es el puntero apunta)

C lenguaje no es de tipo cadena específica, se suele poner la cadena en una matriz de caracteres

 

Cuando se define la asignación: int * p = & a (√) (p inicialización dirección almacena como & a)

Corresponde int * p, p = & a;

(Es decir ★★★ int definido * p a Se entenderá que cuando la dirección de base de la necesidad de asignar una dirección de la variable, y después de un valor definido * p, la necesidad de valores Assign)

Debido a que el puntero P no apunta a una variable, es necesario asignar una dirección

 

Del mismo modo int * p = a; ×

No el valor (entero variable) asignado a la dirección (variable)

Corresponde int * p; p = k; (x)

 

★★★ asignación de dirección & k

int * p, * q, a = 20; 

 

① * p = a; √ puntero P a una asignación de direcciones

(Todos los valores se lograrán valor p * asignado a la variable señalado a)

 

②q = p; √ (porque p / q es un puntero, la instrucción de asignación para alcanzar el valor de P a Q)

③p = q = & a; √ (p / q (valor) de la dirección, y a es la dirección)

④p = * q; × p = a; × (p es una dirección, * q, A es un valor)

⑤a = * p; * p = * q; √ (todos los valores)

 

Valores (tipo estructural de puntero)

Si la definición de un puntero a una variable de tipo de datos específico

El olmo * p = Stu1;

(Equivalente a elem * p; p = & Stu1;)

Stu1.name equivalente a la (* p) .name

Y igual a P → Nombre: nombre que se refiere a un miembro de variable de estructura P (nodo) (el valor)

 

 

Pointer Array (es decir, la matriz es una matriz de punto de punteros a un puntero, el puntero se almacena en la dirección de base de la matriz)

Cuando una variable puntero se inicializa en el nombre de la matriz, dicha variable puntero que apunta a la matriz (p almacenado en la primera dirección de str)

El carbón str [20], * p; p = str;

Puede cambiar los valores de caracteres de la matriz (grabable)

 

Char puntero que apunta

char * str = "Amo a China!";

O (* posición arbitraria, siempre y cuando la línea en el centro)

char * str; str = "Amo a China!";

Apuntan a una cadena constante fija (dirección de la primera cadena de caracteres, es decir, la primera dirección) no es sólo lectura se puede escribir

puntero char str para hacer una cadena de entrada de comandos, la cadena será tanto de salida constante. (Impresión del primer carácter se imprimirá automáticamente la cadena completa)

 

★ matriz de caracteres puntero y la diferencia puntero

(1) char * p (un personaje definido puntero)

(2) ①p = array nombre; (dirección array / dirección que se asigna a la primera puntero array)

p = cadena; (dirección de la cadena / dirección se asigna al primer carácter de los punteros a carácter)

 

 

★★★

* (P + n), p [n] es la primera (i 1 +) valor de los elementos

 

★★★ diferentes punteros de C ++ / C

exportación

printf ( "% s", p); → cadena de salida (cadena de caracteres apuntada por p)

printf ( "% d", p); → valor del puntero de salida p

 

C ++ 

salida:

cout * p → cadena de salida (puntero de memoria)

cout p → puntero de salida almacena en la dirección

 

 

puntero de función

Es un puntero a las variables de función.

Tipo de retorno (* Función de nombre de puntero) (parámetro primitivo)

Asignación: un puntero de función a un nombre de función = nombre;

Llamar a: Nombre de la función de puntero (parámetros);

 

Las variables de puntero se puede utilizar para llamar a la función.

 

Comandos y funciones variables comunes que se deben realizar son los mismos que en la memoria de

Debido a que habrá una dirección en la memoria

La primera función de orden de arranque no es la excepción

Y su dirección de inicio se llama la dirección de la función

Ahora, con un puntero a esta dirección

Cuando el acceso indirecto a esta dirección de puntero almacenado del sistema, esta función está activada

 

Este puntero se llama la función de puntero

"Puntero de función" en realidad significa "puntero a la función"

"Punteros de función" es una clase de funciones. ¿Qué clase de hacer? Es una función que devuelve un puntero

De hecho, una buena memoria

"Función XX" es el valor de retorno es una función de "xx".

 

 

 

 

 

 

 

 

Publicado 46 artículos originales · elogios ganado 15 · Vistas a 30000 +

Supongo que te gusta

Origin blog.csdn.net/qq_41850194/article/details/91873147
Recomendado
Clasificación