Jsem v poslední době nucen používat víc programovacích jazyků než je zdrávo. Samozřejmě jsou mezi nimi odlišnosti a proto se mi občas pletou. Udělám si tedy na webu srovnání, třeba to pomůže i někomu dalšímu. Pro dnešek jsem zvolil problematiku polí.

C

C:
//definice statického pole na zásobníku
int pole_s[10];

//definice pole s inicializaci
int pole[] = {1,2,3,4,5,6,7,8,9,10}

//pole na haldě
//definice ukazatele na int
int *pole_d;
//alokování paměti pro 10 prvků
pole_d = (int *) malloc( 10 * sizeof(int) );

//uvolnění pole na haldě z paměti
free((void*) pole_d);

//následující dvojice výrazů jsou ekvivalentní
pole[0] == *pole;
pole[5] == *(pole + 5)

C++

C++:
//definice pole na zásobníku
int pole[10];

//definice pole na zásobníku s inicializaci
int pole[] = {1,2,3,4,5,6,7,8,9,10};

//pole na haldě
int *pole_d;
pole_d = new int[10];

//odstranění pole na haldě z paměti
delete [] pole_d;

C#

C++:
//deklarace pole
int[] pole;

//inicializace pole
pole = new int[10];

//zkrácená deklarace s inicializací
int[] pole = new int[] {10, 20, 30};
//nebo
int[] pole2 = {10, 20, 30};

//dvourozměrné pravoúhlé pole
int[,] pravouhlepole;
pravouhlepole = new int[10,20];

//deklarace s inicializací pravoúhlého pole
int[,] pravouhlepole = { {10,20}, {11,12} };

//dvourozměrné "zubaté" pole
int[][] zubatepole = new int[3][];
zubatepole[0] = new int[5];
zubatepole[1] = new int[10];
zubatepole[2] = new int[15];

//zubaté pole s inicializací
int[][] zubatepole = {new int[]{10,20,30},new int[]{11,12},new int[]{13} };

Java

JAVA:
//deklarace pole
int[] pole;

//možná, ale nedoporučená deklarace
int pole[];

//inicializace pole
pole = new int[10];

//inicializace konkrétními hodnotami
int[] pole = {1,2,3,4,5,6,7,8,9,10};

//dvourozměrné obdélníkové pole
int[][] dvourozmernepole = new int[10][20];

//dvourozměrné "zubaté" pole
int[][] zubatepole = new int[3][];
zubatepole[0] = new int[5];
zubatepole[1] = new int[10];
zubatepole[2] = new int[15];

//inicializace dvourozměrného obdélníkového pole konkrétními hodnotami
int[][] obdelnikovepole = {{10,20},{11,21},{12,22}};

//inicializace dvourozměrného "zubatého" pole konkrétními hodnotami
int[][] obdelnikovepole = {{10,20,30},{11,21},{13}};