8 Wskaźniki
Zadania należy rozwiązać bez interpretacji wskaźników jako tablic.
- Skopiuj lub przepisz kod i sprawdź wyniki na standardowym wyjściu:
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("%Iu\n", sizeof(int));
printf("%Iu\n", sizeof(int*));
return 0;
}- W jednym pliku wykonaj czynności:
Napisz funkcję
sumz dwoma argumentami typuint. Funkcja ma zwracać sumę wartości przekazanych przez argumenty. Stwórz przypadek testowy.Napisz funkcję
sumValsz dwoma argumentami, które są wskaźnikami do zmiennych typuint. Funkcja powinna zwracać sumę wartości, na które wskazują te argumenty. Utwórz przypadek testowy.Napisz funkcję
addPtrz trzema argumentami, które są wskaźnikami do zmiennych typuint. Funkcja ma być procedurą (typ zwracanyvoid). Funkcja ma ustawić wartość zmiennej wskazywanej przez trzeci argument funkcji jako sumę wartości wskazywanych przez dwa wcześniejsze argumenty. Utwórz przypadek testowy.
Napisz funkcję
copyIntz argumentami:xtypuintorazw, który jest wskaźnikiem doint. Funkcja ma przepisać wartośćxdo zmiennej wskazywanej przezw. Stwórz przypadek testowy.Napisz funkcję
findMaxz dwoma argumentami: wskaźnikiemnum1na stałą wartość typudoublei stałym wskaźnikiemnum2na zmienną typudouble. Funkcja ma zwracać większą wartość spośród tych, na które wskazująnum1inum2. Utwórz przypadek testowy.Napisz funkcję
initInts, która nie przyjmuje argumentów i rezerwuje blok trzech zmiennych typuint, ustawiając ich wartości kolejno na 5, -12, 33. Funkcja zwraca wskaźnik na środkową zmienną. Utwórz przypadek testowy w funkcjimain, który wyświetla wartości z bloku stworzonego przez funkcję.Napisz funkcję
initFloats, która nie przyjmuje argumentów i rezerwuje blok trzech zmiennych typufloat, ustawiając ich wartości kolejno na 4.5, 2.3, -4.2. Funkcja zwraca wskaźnik na początkową ze zmiennych w bloku. Utwórz przypadek testowy w funkcjimain, który wyświetla wartości z bloku stworzonego przez funkcję.Napisz funkcję
initFlts, która nie przyjmuje argumentów i rezerwuje blok czterech zmiennych typufloat, ustawiając ich wartości kolejno na 0.5, 1.5, 2.5, i 3.5. Funkcja zwraca wskaźnik na ostatnią zmienną w bloku. Utwórz przypadek testowy wmain, aby wyświetlić wartości z bloku stworzonego przez funkcję.Napisz funkcję
sumToPtrz trzema argumentami: dwoma wskaźnikami na stałe typuinti wskaźnikiem na zmienną typuint. Funkcja ma przepisać do zmiennej wskazywanej przez trzeci argument sumę wartości stałych wskazywanych przez pierwszy i drugi argument. Utwórz przypadek testowy.Napisz funkcję
sqrCopyz dwoma argumentami: wskaźnikiem na stałą typuinti wskaźnikiem na zmienną typuint. Funkcja ma przepisać kwadrat wartości stałej do zmiennej wskazywanej przez drugi argument. Utwórz przypadek testowy.Napisz funkcję
subPtrsz dwoma argumentami: wskaźnikiemnum1na stałą wartość typudoublei stałym wskaźnikiemnum2na zmienną typudouble. Funkcja ma zwracać różnicę wartości, na które wskazująnum1inum2. Utwórz przypadek testowy.Napisz funkcję
sumSqrsz dwoma argumentami: wskaźnikiemnum1na stałą wartość typuinti stałym wskaźnikiemnum2na zmienną typuint. Funkcja ma zwracać sumę kwadratów wartości wskazywanych przeznum1inum2. Utwórz przypadek testowy.Napisz funkcję
linFuncValz trzema argumentami: wskaźnikiemana stałą wartość typufloat, stałym wskaźnikiembna zmienną typufloat, i wskaźnikiemxna stałą wartość typufloat. Funkcja ma obliczać i zwracać wartość funkcji liniowejy=ax+bdla argumentux, gdzieaibsą wskazywane przez odpowiednie wskaźniki. Utwórz przypadek testowy.Napisz funkcję
minPtrz trzema argumentami, które są wskaźnikami na zmienne typuint. Funkcja zwraca wskaźnik na zmienną o najmniejszej wartości spośród tych, na które wskazują argumenty. Utwórz przypadek testowy wmain, aby wyświetlić najmniejszą wartość spośród trzech zmiennych.Napisz funkcję
multPtrsz dwoma argumentami: wskaźnikiemnum1na stałą wartość typudoublei stałym wskaźnikiemnum2na zmienną typudouble. Funkcja zwraca iloczyn wartości wskazywanych przez te wskaźniki. Utwórz przypadek testowy.Napisz funkcję
absValz jednym argumentem, którym jest wskaźnik na zmienną typuint. Funkcja oblicza wartość bezwzględną zmiennej wskazywanej przez wskaźnik i aktualizuje tę zmienną. Utwórz przypadek testowy wmain, aby wyświetlić wartość zaktualizowanej zmiennej.Napisz funkcję
swapz dwoma argumentami: wskaźnikiemptr1na zmienną typuinti wskaźnikiemptr2na inną zmienną tego samego typu. Funkcja zamienia miejscami wartości wskazywane przez wskaźniki. Utwórz przypadek testowy.Napisz funkcję
swapSignz dwoma argumentami: wskaźnikiemptr1na zmienną typudoublei wskaźnikiemptr2na inną zmienną tego samego typu. Funkcja zamienia miejscami wartości wskazywane przez wskaźniki, jeśli mają one różne znaki. W przeciwnym razie nie robi nic. Utwórz przypadek testowy.