Diferencia entre revisiones de «asterisco»
(→Parámetros) |
(→Parámetros) |
||
Línea 10: | Línea 10: | ||
;variable1: | ;variable1: | ||
;<nowiki>*</nowiki>variable2: | ;<nowiki>*</nowiki>variable2: | ||
+ | |||
+ | |||
+ | == Comentarios == | ||
+ | Los punteros son uno de los temas más complicados para los principiantes de Arduino y es posible escribir la gran mayoría de [[bocetos]] sin tener que encontrarse con los punteros. Sin embargo, para la manipulación de ciertas estructuras de datos, el uso de punteros puede simplificar el código, y el conocimiento de la manipulación de punteros es útil para tener en la propia caja de herramientas. | ||
+ | |||
+ | Bien usados, los punteros son excepcionalmente útiles para resolver cierto tipo de problemas, pero aprender a manejarlos puede provocar serios dolores de cabeza, especialmente cuando tratas de depurar un programa que se niega a funcionar como debe. | ||
+ | |||
+ | En primer lugar debemos entender que la memoria del Arduino está numerada en posiciones. Cada posición de memoria tiene una dirección única, que debe ser especificada cuando queremos leer o escribir su valor. Si miramos el tipo de memoria de los distintos Arduinos, vemos que, por ejemplo, el [[UNO]] dispone de 32 K de memoria [[flash]] para almacenamiento de programas y de 2 K de [[SRAM]] para almacenar de variables. | ||
+ | |||
+ | Cuando definimos una variable en el [[boceto]], el compilador le asigna una posición en la memoria [[SRAM]]. Si la variables es del tipo [[char]] o [[byte]] asigna un byte de memoria, si es del tipo [[int]] o [[unsigned int]] le asigna dos posiciones de memoria y si es un tipo [[long]] o [[unsigned long]] le asigna 4 posiciones de memoria. | ||
+ | |||
+ | <pre> | ||
+ | int numero; //Declaramos variable | ||
+ | numero = 123; //Definimos variable | ||
+ | </pre> | ||
+ | |||
+ | {| | ||
+ | !Nombre!!DIreccion de memoria!!Contenido | ||
+ | |- | ||
+ | |numero||2050||123 | ||
+ | |} | ||
== Advertencias == | == Advertencias == |
Revisión del 17:45 28 jul 2018
Contenido
Descripción
El operador de asterisco (*) se usa para este propósito. Si p es un puntero, entonces *p representa el valor contenido en la dirección apuntada por p.
Sintaxis
variable1 = *variable2
Parámetros
- variable1
- *variable2
Comentarios
Los punteros son uno de los temas más complicados para los principiantes de Arduino y es posible escribir la gran mayoría de bocetos sin tener que encontrarse con los punteros. Sin embargo, para la manipulación de ciertas estructuras de datos, el uso de punteros puede simplificar el código, y el conocimiento de la manipulación de punteros es útil para tener en la propia caja de herramientas.
Bien usados, los punteros son excepcionalmente útiles para resolver cierto tipo de problemas, pero aprender a manejarlos puede provocar serios dolores de cabeza, especialmente cuando tratas de depurar un programa que se niega a funcionar como debe.
En primer lugar debemos entender que la memoria del Arduino está numerada en posiciones. Cada posición de memoria tiene una dirección única, que debe ser especificada cuando queremos leer o escribir su valor. Si miramos el tipo de memoria de los distintos Arduinos, vemos que, por ejemplo, el UNO dispone de 32 K de memoria flash para almacenamiento de programas y de 2 K de SRAM para almacenar de variables.
Cuando definimos una variable en el boceto, el compilador le asigna una posición en la memoria SRAM. Si la variables es del tipo char o byte asigna un byte de memoria, si es del tipo int o unsigned int le asigna dos posiciones de memoria y si es un tipo long o unsigned long le asigna 4 posiciones de memoria.
int numero; //Declaramos variable numero = 123; //Definimos variable
Nombre | DIreccion de memoria | Contenido |
---|---|---|
numero | 2050 | 123 |
Advertencias
Nada.
Ejemplo
byte *p; i=5, resultado; p = &i; //5 resultado = *p; //resultado toma el valor de la posicion de memoria de p
Vea también
- ampersan - (&)