#include <cstddef>
#include <type_traits>
#include <iostream>
template<class T, std::size_t sz>
inline void reset(T(&x)[sz] )
{
std::cout << "array\n";
}
template<class T>
inline void reset(T *const &x)
{
std::cout << "pointer\n";
}
template<class T>
inline void reset(T&x)
{
std::cout << "reference\n";
}
int main(int argc, const char* argv[], const char* envp[])
{
int nRetCode = 0;
char mass[10];
char *pmass=mass;
reset(mass);
reset(pmass);
reset(nRetCode);
return nRetCode;
}
I2luY2x1ZGUgPGNzdGRkZWY+CiNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKdGVtcGxhdGU8Y2xhc3MgVCwgc3RkOjpzaXplX3Qgc3o+CmlubGluZSB2b2lkIHJlc2V0KFQoJngpW3N6XSApCnsKCXN0ZDo6Y291dCA8PCAiYXJyYXlcbiI7Cn0KCnRlbXBsYXRlPGNsYXNzIFQ+CmlubGluZSB2b2lkIHJlc2V0KFQgKmNvbnN0ICZ4KQp7CglzdGQ6OmNvdXQgPDwgInBvaW50ZXJcbiI7Cn0KCnRlbXBsYXRlPGNsYXNzIFQ+CmlubGluZSB2b2lkIHJlc2V0KFQmeCkKewoJc3RkOjpjb3V0IDw8ICJyZWZlcmVuY2VcbiI7Cn0KCmludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyKiBhcmd2W10sIGNvbnN0IGNoYXIqIGVudnBbXSkKewogICAgaW50IG5SZXRDb2RlID0gMDsKICAgIAogICAgY2hhciBtYXNzWzEwXTsKICAgIGNoYXIgKnBtYXNzPW1hc3M7CgoKICAgIHJlc2V0KG1hc3MpOwogICAgcmVzZXQocG1hc3MpOwogICAgcmVzZXQoblJldENvZGUpOyAgICAKICAgIHJldHVybiBuUmV0Q29kZTsKfQ==