In C, arrays can be indexed like so:Да, весело, действительно так можно написать, и это будет правильно с точки зрения синтаксиса Си. Более того, этому даже есть вполне логичное объяснение. Но главное, в реальной практике, так конечно никто не пишет, и эта странность не провоцирует на ошибки.
a[10]
which is very common.
However, the lesser known form (which really does work!) is:
10[a]
which means the same as the above.
Там ещё много подобный вещей, почему-то в основном упоминается javascript :-).
Ещё меня повеселил один комментарий к Trigraphs in C and C++
These let you use the "WTF operator": (foo() != ERROR)??!??! cerr << "Error occurred" << endl;
Trigraphs это довольно малоизвестная особенность в C/C++, пришедшая к нам из древних веков, в приличных компиляторах она выключена. Кроме искусственных хитрых примеров, больше нигде не встречается.
Я, конечно, точно не знаю, но триграфы, по-видимому, наследие древних терминалов, на некоторых из которых не было нужных символов. Экономия на кнопках, так сказать. Ведь сэкономили же в BIOS на годе, ограничив его 99, равно как и таймзоной и признаком летнего времени. В результате мало кто знает и понимает, что по-честному в BIOS можно хранить только время UTC :)
ОтветитьУдалить