Menu
Coddy logo textTech

Wartość a wskaźnik

Lekcja 7 z 17 w kursie Funkcje w C w Coddy.

Gdy przekazujemy parametry do funkcji, możemy zrobić to na dwa sposoby: przez wartość lub przez wskaźnik. Przyjrzyjmy się prostemu przykładowi, aby zrozumieć, co rozumiemy przez wartość i wskaźnik:

#include <stdio.h>

void sum(int a) {
   a = a + 1;
   printf("sum function: %d\n", a);
}

int main(void) {
   int a = 10;
   sum(a);
   printf("main function: %d\n", a);
   return 0;
}

Wynik:

sum function: 11 
main function: 10 

Jak widać w tym przykładzie, używamy wartości, więc wartość zmiennej a się nie zmieniła. Jeśli jednak chcemy uzyskać dostęp do zmiennej i zmienić jej wartość, możemy użyć wskaźnika jako parametru.

#include <stdio.h>

void sum(int *a) {
   *a = *a + 1;
   printf("sum function: %d\n", *a);
}

int main(void) {
   int a = 10;
   sum(&a);
   printf("main function: %d\n", a);
   return 0;
}

Ponieważ funkcja przyjmuje teraz wskaźnik jako parametr, podczas jej wywołania musisz przekazać adres zmiennej:

sum(&a);

Wynik:

sum function: 11 
main function: 11 
challenge icon

Wyzwanie

Łatwy

W podanym kodzie definiujemy zmienną o nazwie y.

  • Napisz funkcję square, która jako parametr przyjmuje wskaźnik na liczbę całkowitą.
  • Wewnątrz tej funkcji podnieś do kwadratu wartość zmiennej, na którą wskazuje wskaźnik, i wypisz jej wartość.
  • Wypisz wartość zmiennej zarówno w funkcji square, jak i w funkcji main, aby pokazać, że pierwotna zmienna została zmieniona.

Spróbuj swoich sił

#include <stdio.h>


// Funkcja square podnosząca wartość do kwadratu za pomocą wskaźnika
 
int main(void) {

    int a = 200;
    
    // Wywołaj funkcję square
     
    // Wypisz pierwotną wartość zmiennej 
    
    return 0;
}

Wszystkie lekcje w sekcji Funkcje w C

Poćwicz samodzielnie: Kompilator C online