Wykonaj następujące ćwiczenia:
a) zdefiniuj:
-dwie zmienne x,y typu int, zainicjalizowane wartościami 10 i 20
- tablice tab 5 elementów typu int o wartościach 6,3,5,2,4
- dwa wskaźniki w1,w2 do elementów typu int
b) ustaw wskaźnik w1 na zmienną x, w2 na zmienną y
c) przypisz zmiennej y wartość obiektu na który wskazuje w1
d) za pomocą wskaźnika w2 zmień wartość zmiennej y
e) za pomocą w2 ustaw wskaźnik w1 tak aby wskazywał na zmienną y
f) wypisz na ekran wartości następujących wyrażeń: &w1, &w2, w1, w2, *w1, *w2, &x, &y
g) ustaw wskaźnik w1 tak aby wskazywał zerowy element tablicy, wypisz na ekran wartość w1 i tab
h) posługując się wskaźnikiem ( nie zmieniając jego wartości) wypisz w pętli wszystkie elementy tablicy
i) wypisz na ekran wartości nastepujacych wyrażeń: ++*w1, *++w1, (*w1)++, *w1++
Zinterpretuj otrzymane wyniki.
Oto kod który zrobiłem:
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
int x=10;
int y=20;
int tab[]={6,3,5,2,4};
int *w1,*w2;
int i;
w1=&x;
w2=&y;
y=*w1;
y=*w2;
w1=w2;
printf("&w1= %d\n &w2= %d\n w1= %d\n w2= %d\n *w1= %d\n *w2= %d\n &x= %d\n
&y= %d\n",&w1, &w2, w1, w2, *w1, *w2, &x, &y);
w1=tab;
printf("w1= %d\n tab= %d\n",*w1,*tab);
for(i=0; i<5; i++)
{
printf("%d \n",*w1);
w1++;
}
printf("++*w1= %d\n *++w1= %d\n (*w1)++= %d\n *w1++= %d\n",++*w1, *++w1,
(*w1)++, *w1++ );
getchar();
}
Wychodzą dość dziwne wyniki dlatego proszę o sprawdzenie kodu i ewentualną popraweę.