|

Wskaźniki w Arduino

Każda zmienna / obiekt tworzony w czasie działania programu ma pewną wartość i zajmuje określoną ilość pamięci podręcznej. Wartość takiej zmiennej jest zapisywana w określonym miejscu pamięci, którego zazwyczaj nie musimy znać, ponieważ wartości te wywołujemy za pomocą nazwy zmiennej.

Przekazywanie zmiennych do funkcji pozwala operować na jej kopii.

Chcąc operować na konkretnej wartości (zapisanej w konkretnym miejscu pamięci), a nie kopii, należy korzystać ze wskaźników (lub referencji).

Wskaźnik tworzy się podobnie jak zmienną dodając do typu znak *.

Adres pobiera się za pomocą znaku &.

int i = 4;
int* pI = &i;  // wskaznik o typie int
Serial.print(*pI); // dereferencja wartości z adresu

Przykład modyfikacji zmiennej w funkcji przez referencję, a nie kopiowanie.

Za pomocą wskaźników*

void increment(int* v) {
  (*v)++;
}

void setup() {
  Serial.begin(9600);
  int a = 5;
  increment(&a);
  Serial.print(a);
}

Za pomocą referencji &

void increment( int& v){
  v++;
}

void setup(){
  Serial.begin(9600);
  int a = 5;
  increment(a);
  Serial.print(a);
}

Podobne wpisy

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *