参考答案:
【问题1】
(1) sizeof(int)
(2)temp[k++] 或*(temp+k++)或等价表示
(3) i<k 或等价表示
(4)a[k++] 或*(a+k++)或等价表示
【问题2】
可能由于动态内存申请操作失败而导致函数功能无法实现,时间和空间效率低。
详细解析:
申请数组a大小的空间,a为一整型数组,所以我们可以用求sizeof的方式来达到目的。复制完后将k的值增1,数组需要下移一位。将数组元素传回a中,使用for循环来达到目得,循环的条件是i<k。
遇到非0元素并将其前移后k才增1,所以形式为a[k++]而非a[++k]。
函数CompactArr vl存在的缺点有可能是时间和控件效率低。