Język Ansi C
1. Napisz funkcję otrzymującą jako argumenty wskaźniki do dwóch
zmiennych typu int, która zwraca jako wartość wskaźnik na zmienną
przechowującą mniejszą z liczb wskazywanych przez argumenty.
2. Napisz funkcję otrzymującą jako argumenty wskaźniki do dwóch
zmiennych typu int, funkcja zwiększa każdą z wartości wskazywanych przez
wskaźniki o 10.


Odpowiedź :

Odpowiedź:

#include <stdio.h>

//zadanie 1

int *fun1(int *a, int *b) { //funkcja przyjmuje dwa wskaźniki

   return *a < *b ? a : b; //sprawdzamy za pomocą deferencji (operator *), który wskaźnik wskazuje na mniejszą z liczb i zwracamy wskażnik na nią (wskaźnik, więc bez * już)

}

//zadanie 2

void fun2(int *a, int *b){ //funkcja przyjmuje dwa wskaźniki

   *a += 10; // zwiększamy o 10 obie liczby wskazywane przez te wskaźniki

   *b += 10;

}

int main() {

   int a = 4;

   int b = 5;

   printf("%p\n", fun1(&a, &b)); //wyświetlamy adres mniejszej z liczb (jeśli byśmy chcieli wyświetlić wartość jej, to powinniśmy użyć dereferencji)

   fun2(&a, &b); // używamy &, bo przekazujemy wskaźniki na te liczby, a nie same liczby

   printf("%d\n", a);

   printf("%d\n", b);

   return 0;

}

Wyjaśnienie:

Wyjaśnienie po //, jak coś nadal niejasne, to pytaj