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 Wyzwanie
ŁatwyW 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 funkcjimain, 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