Diferencia entre revisiones de «ampersan»
(Página creada con «== Descripción == El operador de '''ampersand''' <nowiki>(&)</nowiki> se usa para este propósito. Si x es una variable, entonces <nowiki>&x</nowiki> representa la direcci...») |
(→Descripción) |
||
Línea 1: | Línea 1: | ||
== Descripción == | == Descripción == | ||
− | El operador de '''ampersand''' <nowiki>(&)</nowiki> se usa para | + | El operador de '''ampersand''' <nowiki>(&)</nowiki> se usa para obtener la dirección de memoria (puntero) de una variable individual. |
+ | |||
+ | El tipo de puntero obtenido es igual al tipo de dato del operando; en caso de que el valor apuntado requiera "reinterpretación" (que no es lo mismo que la conversión explícita o casting), el tipo de puntero debe ser convertido explícitamente. Este truco es útil para directamente leer o modificar cualquier variable como una simple matriz de [[byte|bytes]]. | ||
+ | |||
+ | {{Nota|Es incluso válido obtener el puntero de otro puntero, y el de un elemento de una matriz.}} | ||
== Sintexis == | == Sintexis == |
Revisión actual del 02:03 9 ago 2018
Descripción
El operador de ampersand (&) se usa para obtener la dirección de memoria (puntero) de una variable individual.
El tipo de puntero obtenido es igual al tipo de dato del operando; en caso de que el valor apuntado requiera "reinterpretación" (que no es lo mismo que la conversión explícita o casting), el tipo de puntero debe ser convertido explícitamente. Este truco es útil para directamente leer o modificar cualquier variable como una simple matriz de bytes.
Nota: Es incluso válido obtener el puntero de otro puntero, y el de un elemento de una matriz.
Sintexis
variable1 = &variable2;
Parámetros
- variable1
- variable2
Advertencias
Los punteros son uno de los temas más complicados para los principiantes en el aprendizaje de C, y es posible escribir la gran mayoría de los bocetos de Arduino sin encontrar punteros. Sin embargo, para manipular 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 el kit de herramientas.
Ejemplo
byte *p, i=5, resultado; p=&i; //5 resultado = *p; //resultado toma el valor de la posicion de memoria p
Vea también
- asterisco - (*)