Dane w tablicy dwuwymiarowej

0

Witam. Napisałem sobie taki prosty programik na tablicach i pewna rzecz mnie zdziwiła:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main(void)
{
	int tab[2][2] = {1, 2, 3, 4};

	*tab[1] = 10;
	printf("%d ", tab[0][0]);
	printf("%d ", tab[0][1]);
	printf("%d ", tab[1][0]);
	printf("%d ", tab[1][1]);
	printf("%d ", tab[0][2]);
	printf("%d ", tab[0][3]);
	printf("%d", tab[1][2]);
	getchar();
	getchar();
	return 0;
} 

Zadeklarowałem tablicę 2 na 2 i poszczególne elementy tablicy mają indeksy [0][0] [0][1] [1][0] i [1][1] i tutaj rozumiem. Wypełniłem te elementy jakimiś tam danymi. Jednak jak np. próbuję odnieść się do elementów [0][2] i [0][3] to wyświetla mi elementy spod [1][0] i [1][1] czemu tak się dzieje? Przecież nie mam takich indeksów w tablicy. Mimo to wyświetlają mi się dane, a nie wyskakuje błąd jak przy próbie wyświetlenia elementu o indeksie [1][2].

1

tak ładniej: int a[2][2] = {{1, 2}, {3, 4}};

tab[a][b] równoważne tab[a*LiczbaKolumn + b] a nawet *(tab + a * LiczbaKolumn +b)

1 użytkowników online, w tym zalogowanych: 0, gości: 1