Задачи для подготовки к собеседованию

Что выведет следующий код и почему?

C++
int global_data;
static int global_static_data;

void func()
{
    static int local_static_data;
    std::cout << "local_static_data: " << local_static_data << std::endl;
}

int main(int argc, char** argv)
{
    int local_data;
    std::cout << "local_data: " << local_data << std::endl;

    int* dynamic_data = new int;
    std::cout << "dynamic_data: " << *dynamic_data << std::endl;
    delete dynamic_data;

    func();

    std::cout << "global_data: " << global_data << std::endl;
    std::cout << "global_static_data: " << global_static_data << std::endl;

    return EXIT_SUCCESS;
}