int *p = new int (5); 就是申请一个int类型的空间 空间地址给指针p 这个int值为5 所以fn1()返回值为5 你输出的a就是5
int *p = new int (5); 就是动态申请个数组,并把这个数组的首地址赋给指针P