- 1
m[7500];char*c=m+3750;char*main(int k,char**a,char*s){return!a?~k?k&&*s?main(k+(*s==91)-(*s==93),0,s+1):s:(*(c+=(*s==62)-(*s==60))+=(*s==43)-(*s==45),*s==44?*c=getchar():*s-46||putchar(*c),*s-93?*s-91?0:!*c?s=main(1,0,s+1)-1:main(-1,0,1+s--),1[s]&&main(-1,0,s+1):0):main(-1,0,1[a]);}
У меня то поинтереснее программка. Не знаю, можно ли что-ниюудь сделать с внутренним циклом.
Это нормально так память выделять? По-моему удобно.
https://en.cppreference.com/w/c/language/compound_literal
Брейнфак?
Звёздочкой она работает только со структурами и примитивными типами, во всех остальных случаях - разыменование.
var pstruct=^TStruct; // типизированный указатель
pstruct^.fieldvalue=123; // разыменование, или, как ты выразился, "взять данные по адресу".
Компилятор схавает и без разыменования. Дельфи позволяет такие вольности.
Путаница возникает из-за того, что в сишке нет нормальных массивов: там перемешаны массивы и указатели. То есть указатель на int в сишке — это по совместительству указатель на массив интов. Квадратные скобки подразумевают разыменование (которое явно не пишется).
Насчёт строк: тип string в Турбо Паскале (который в Дельфи переименовали в ShortString) — это настоящий массив.
Новые строки в Дельфи (AnsiString, WideString etc.) — это указатели.