C feladvany


#include <stdio.h>

int main()
{
  int d = sizeof(0)["ABCDEFGHIJKLMNOPQRSTUVWXYZ"];
  printf("%d\n", d);
  
  return 0;
}

Hozzászólások

Ahány byte-os az adott architektúrán az int, annyiadik betű ASCII kódját írja ki.

--
Soli Deo Gloria

Sub.

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Pontosan; a subscript operator binding-ja erősebb, mint a sizeof operátoré.

... Ezért nagy badarság az a kódolási stílus, hogy

sizeof(expression)

, mert eltakarja a fenti tényt. Úgy írandó helyesen, hogy

sizeof expression

-- esetleg

(sizeof expression)

--, amely itt konkrétan úgy nézett volna ki, hogy

sizeof 0["ABCDEFGHIJKLMNOPQRSTUVWXYZ"]

.

(A két szóban forgó zárójelezés

(sizeof 0["ABCDEFGHIJKLMNOPQRSTUVWXYZ"])

vs.

(sizeof 0)["ABCDEFGHIJKLMNOPQRSTUVWXYZ"]

.

Erre egyik ismerosom csak annyit mondott skypen, mikozben talalgattuk, hogy mi a trukk, hogy "szeretnek egy olyan nyelvel dolgozni, amiben nem lehet ilyen trukkos mit ir ki feladatokat feladni".

Magam reszerol annyit mondok ra, hogy giganagy pluszegy.

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Erősen emlékeztet David Korn 1987-es versenyművére: erre az IOCCC korai szakaszából, de annyira azért nincs elbonyolítva. Vagy a jó isten se tudja, az övé 70 byte :-)