#include <stdio.h> void main() { int d=10; int *p; p=&d; printf("d = %d\n",d); printf("d = %d\n\n",*p); d=20; printf("d = %d\n",d); printf("d = %d\n\n",*p); *p=30; printf("d = %d\n",d); printf("d = %d\n\n",*p); printf("&d = %p\n",&d); printf("p = %p\n\n",p); printf("&d = %p\n",&d); printf("&p = %p\n",&p); printf("\n\n\n\t______________________________________________________________________\n\t| adres zmiennej |\tnazwa zmiennej |\twartosc przechowywana|\n\t|\t\t |\t\t\t |\tprzez zmienna\t |\n\t----------------------------------------------------------------------\n --->\t|\t%p |\t\td\t |\t\t%d\t |\n |\t----------------------------------------------------------------------\n |\t|\t%p |\t\tp\t |\t\t%p |\n |\t----------------------------------------------------------------------\n |\t\t\t\t\t\t\t\t|\n |____________________________________________________________|\n\n",&d,d,&p,p); int t[2]={333,444}; p=t; printf("\n\n\n\t______________________________________________________________________\n\t| adres zmiennej |\tnazwa zmiennej |\twartosc przechowywana|\n\t|\t\t |\t\t\t |\tprzez zmienna\t |\n\t----------------------------------------------------------------------\n\t|\t%p |\t\td\t |\t\t%d\t |\n\t----------------------------------------------------------------------\n\t|\t%p |\t\tp\t |\t\t%p |\n\t----------------------------------------------------------------------\n\t|\t%p |\t\tp[0]\t |\t\t%d\t |\n\t----------------------------------------------------------------------\n\t|\t%p |\t\tt\t |\t\t%p |\n\t----------------------------------------------------------------------\n\t|\t%p |\t\tt[0]\t |\t\t%d\t |\n\t----------------------------------------------------------------------\n\t|\t%p |\t\tt[1]\t |\t\t%d |\n\t----------------------------------------------------------------------\n\n\n",&d,d,&p,p,&p[0],p[0],&t,t,&t[0],t[0],&t[1],t[1]); /* moæna przypisaę adres pierwszego elementu tablicy na dwa sposoby: p = &t[0]; // przypisanie adresu pierwszego // elementu tablicy p = t; // przypisanie adresu pierwszego // elementu tablicy */ int *ptr = &t[1]; int diff = ptr - t; printf("roznica = %d\t(wynikiem jest odleglosc dwoch wskazywanych wartosci;\n\t\todleglosc zwracana jest jako liczba obiektow danego typu,\n\t\ta nie liczba bajtow; dla uzyskania wyniku w bajtach nalezy\n\t\tpomnozyc otrzymany wynik przez rozmiar zajmowany przez zmienna\n\t\tdanego typu (np. dla: int - 4 bajty, double - 8 bajtow))\n\n\n\n",diff); }
luzio1