ответ Иакова хорошо, однако ответить на часть о «как это отличается от указателя функции?»:
1) Блок является не функция указатель. Блоки Apple берут на себя, как сделать функции граждан первого класса в C/C++/Objective-C. Это новичок в iOS 4.0.
2) Зачем вводить эту странную концепцию? Оказывается, функции первого класса полезны в довольно многих сценариях, например, управление кусками работы, которые могут выполняться параллельно, как в Grand Central Dispatch. Помимо GCD, теория достаточно важна, что вокруг нее существуют целые программные системы. Лисп был одним из первых.
3) Вы увидите эту концепцию на многих других языках, но разными именами. Например, Microsoft .Net имеет lambdas и делегаты (нет отношения к делегатам Objective-C), в то время как наиболее общие имена, вероятно, являются анонимными функциями или first class functions.
Большое спасибо, Джейкоб! Теперь я нашел учебники по блокам и узнал немного больше) – wh1t3cat1k