ubiquitour.com

Cómo amo C punteros

Punteros son probablemente el concepto más difícil que se encontrará en una clase de C de principio. Indicadores de comprensión C es mucho más fácil si usted tiene una idea clara de cómo las computadoras almacenan información--y una idea clara sobre cómo se relacionan las direcciones de localidades de memoria con los datos que se almacenan en las ubicaciones de memoria. Esto es porque los punteros son direcciones. Entender cómo abordar obras resulta más fácil entender cómo funcionan los punteros.

Instrucciones

1 Aprender primero cómo dirección, tipo y valores trabajan juntos en memoria de la computadora. Cada variable que utilizas en tu programa en C con un tipo y una dirección en memoria. Supongamos que X es una palabra doble (el tipo) que ocupa 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 (escrito X) será de 1000 y 1001. X es el nombre de un cuadro que actualmente tiene (por ejemplo) 15, y esto puede cambiar. La dirección de X es 1000, y esto probablemente no va a cambiar.

2 Aprender lo que significa cuando las ubicaciones de memoria contienen las direcciones de otros lugares de la memoria. El compilador de C sabe cuando una variable es un puntero y qué tipo de artículos señala. Por ejemplo, "doble P;" es la declaración que declara P ser un puntero. Esto significa que el símbolo P se asocia con una localización de memoria (digamos 2000) y que el sistema sabe que cosas en lugar de 2000 (los punteros son una única palabra larga) son direcciones. Ahora se podría decir que "P = & X;" y los resultados serían poner 1000 (la dirección de X) en lugar de la memoria de computadora 2000. Si usted ahora evaluado P (qué puntos P a), se podrían obtener 15, porque P puntos a 15. P contiene la dirección de X, pero señala el contenido de X.

3 Aprender bien cada concepto antes de pasar a la siguiente. Cada nuevo uso de punteros será "azúcar sintáctica" para facilitar el uso de la lengua. Si usted tiene un concepto claro sobre cómo trabajan juntos direcciones y tipos de memoria, tiene la base sólida necesaria para entender el azúcar sintáctico.

Consejos y advertencias

  • Si R es una matriz en el programa de C, entonces R es realmente un puntero, R contiene la dirección del primer elemento de la matriz. R [0] es una forma de hacer referencia al primer elemento de la matriz, pero * R también trabaja, y * R es la manera en que el sistema utilizará siempre.
  • No te olvides de los efectos de "tipo" cuando haces puntero aritmético. *(R+1) le dará el segundo elemento de la matriz incluso si el array contiene sólo dos palabras. El sistema sabe cuando agregar un número a un puntero, no siempre añades uno--depende del tipo de cosas el puntero apunta a y esto fue declarado para ser una palabra doble.