Úloha 6.1
Napíšte program, zdrojový kód, v jazyku C použitím štandardu C17, ktorý definuje premenné typu int m, n a o a pointer z, ktorý je pointer na premennú m. Premennej m priraďte ľubovolnú hodnotu.
Program by mal vypísať na štandardný výstup následné reťazce:
z stores the address of m = <aktuálna adresa>
*z stores the value of m = <aktuálna hodnota>
&m is the address of m = <aktuálna adresa>
&n stores the address of n = <aktuálna adresa>
&o stores the address of o = <aktuálna adresa>
&z stores the address of z = <aktuálna adresa>Note
Všimnite si, že ak program spustíte opakovane adresy premenných sa menia.
Rozbaľ pre ukážku riešenia
#include <stdio.h>
int main() {
// Definícia premenných
int m, n, o;
int *z;
// Priradenie hodnôt
m = 42; // Ľubovoľná hodnota
z = &m; // Pointer z ukazuje na premennú m
// Výpis požadovaných informácií
printf("z stores the address of m = %p\n", z);
printf("*z stores the value of m = %d\n", *z);
printf("&m is the address of m = %p\n", &m);
printf("&n stores the address of n = %p\n", &n);
printf("&o stores the address of o = %p\n", &o);
printf("&z stores the address of z = %p\n", &z);
return 0;
}Vysvetlenie
Premenné a pointery:
- m, n, a o sú premennej typu int.
- z je pointer na int, ktorý uchováva adresu premennej m.
Priradenie hodnôt:
- Premennej m priraďujeme hodnotu 42 (môže byť ľubovoľná).
- Pointer z nastavujeme na adresu premennej m pomocou operátora &.
Výpis:
- Adresy a hodnoty sa vypisujú pomocou formátovacieho reťazca %p (pre pointery) a %d (pre hodnotu typu int).
Príklady výstupu
Po spustení program môže byť výstup nasledovný (samozrejme adresy líšia medzi spusteniami):
z stores the address of m = 0x7ffcb5e7914c
*z stores the value of m = 42
&m is the address of m = 0x7ffcb5e7914c
&n stores the address of n = 0x7ffcb5e79148
&o stores the address of o = 0x7ffcb5e79144
&z stores the address of z = 0x7ffcb5e79138