Cześć!
Potrzebuje na szybko czyli na poniedziałek na lekcje informatyki w trzeciej klasie technikum odpowiedź na to pytanie z operacji na tablicach w języku C:
Co i DLACZEGO wypisze ten program:
#include <stdio.h>
int main()
{
int tab[] = {1, 2, 3, 4};
printf ( "%d, %d, %d, %d\n", *tab, * ( tab + 1 ), tab[2], 3[tab] );
return 0;
}
" Life is not a problem to be solved but a reality to be experienced! "
© Copyright 2013 - 2024 KUDO.TIPS - All rights reserved.
Program wyświetli `1, 2, 3, 4`, ponieważ:
1.`int tab[]` jest równoważne deklaracji `int *tab`, a `tab` to wskaźnik na pierwszy element tablicy; zatem `*tab` to jej pierwszy element.
2.`*(tab+1)` to tak w rzeczywistości odwołanie do adresu pamięci znajdującego się o `sizeof(int)` oktetów dalej od `tab`, czyli odczytanie elementu drugiego.
3.`tab[2]` to standardowe odwołanie do tablicy równoznaczne `*(tab+2)`
4.`3[tab]` jest równoznaczne `tab[3]`, zatem to samo, co w podpunkcie wyżej.