Zamiana dwóch zmiennych: swap

Wskaźniki i napisy w tablicach char - Podstawy C++ (C++)

Klasyczny przykład: swap zamienia wartości dwóch zmiennych. Potrzebuje adresów obu i trzeciej zmiennej na chwilę, jak przy przelewaniu dwóch szklanek.

#include <iostream>
using namespace std;

// funkcja dostaje ADRES zmiennej, wiec moze ja zmienic
void addPoint(int *score) {
  *score = *score + 1;
}

// zamiana dwoch zmiennych: bez wskaznikow funkcja zmienilaby tylko kopie
void swap(int *a, int *b) {
  int temp = *a;
  *a = *b;
  *b = temp;
}

int main() {
  int x = 5;
  int *p = &x; // p przechowuje adres zmiennej x
  cout << "x = " << x << endl;
  *p = 7; // zapis pod ten adres zmienia x
  cout << "x = " << x << ", *p = " << *p << endl;

  int points = 0;
  addPoint(&points);
  addPoint(&points);
  cout << "punkty = " << points << endl;

  int a = 3, b = 8;
  swap(&a, &b);
  cout << "a = " << a << ", b = " << b << endl;
  return 0;
}

Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.

Wszystkie lekcje kursu Podstawy C++·Zaloguj się, aby zapisać postęp na koncie.