Tecnología

Inicio

Cómo dominar C Punteros

Los punteros son probablemente el concepto más difícil que se encontrará en una clase de principio C. La comprensión de los punteros C es mucho más fácil si usted tiene una idea clara de cómo almacenar información de las computadoras - y una idea clara acerca de cómo las direcciones de las posiciones de memoria se refieren a los datos que se almacenan en esos lugares de memoria. Esto se debe a que los punteros son todos acerca de las direcciones. Entender cómo hacer frente a las obras hace que sea más fácil entender cómo funcionan los punteros.

Instrucciones

1 Aprender primero la dirección, el tipo y los valores trabajan juntos en la memoria del ordenador. Todas las variables que utiliza en su programa en C tendrá un tipo y una dirección en la memoria. Supongamos que X es una palabra doble (el tipo) que ocupa las posiciones de memoria 1000 y 1001. La dirección de X (escrito y X) es 1000, pero el sistema sabe que X es una palabra doble, por lo que el valor de X (X escrito) será en 1000 y 1001. X es el nombre de una caja que contiene actualmente (por ejemplo) 15, y esto puede cambiar. La dirección de X es de 1000, y esto probablemente no va a cambiar.

2 Saber lo que se quiere decir cuando las posiciones de memoria contienen las direcciones de otras posiciones de memoria. El compilador de C sabe cuando una variable es un puntero y qué tipo de artículos que apunta. Por ejemplo, "doble

P;" es la sentencia que declara P sea un puntero. Esto significa que el símbolo P está asociado con una ubicación de memoria (digamos 2000) y que el sistema sabe que las cosas en ubicación 2000 (punteros son sólo una palabra larga) son direcciones. Ahora se podría decir "P = & X"; y los resultados serían para poner 1000 (la dirección de X) en la posición de memoria del ordenador 2000. Si ahora evaluado P (P lo puntos a), se llega a 15, debido a los puntos P 15. P contiene la dirección de X, pero apunta al contenido de X.

3 Aprender cada nuevo concepto de fondo antes de pasar a la siguiente. Cada nuevo uso de punteros será "azúcar sintáctico" para hacer que el idioma más fácil de usar. Si usted tiene un concepto claro acerca de cómo las direcciones, los tipos y la memoria de trabajo en conjunto, tiene la base sólida necesaria para entender el azúcar sintáctico.

Consejos y advertencias

  • Si R es una matriz en su programa en C, entonces R es realmente un puntero - R contiene la dirección del primer elemento de la matriz. R [0] es una manera de referirse a la primera elemento de la matriz, pero * R también funciona, y * R es la forma en que el sistema utilizará siempre.
  • No se olvide de los efectos del "tipo" cuando usted está haciendo la aritmética de punteros. * (R + 1) dará el segundo elemento de la matriz incluso si la matriz contiene sólo palabras dobles. El sistema sabe que cuando se agrega un número a un puntero, que no siempre se agrega uno - que depende del tipo de cosas que el puntero apunta, y esto fue declarado ser una palabra doble.