你问这问题,证明你对数组的静态初始化和动态初始化还不够了解。
数组的静态初始化
int[] a={1,2,3,4};
动态初始化
int[] intArray;//声明数组
intArray = new int[5];//为数组分配空间
所谓的静态和动态是相对于程序运行是而言的,静态是在程序编译时就初始化好了的,动态初始化是在程序运行是才动态分配内存空间。对于代码而言,其实都可以。唯一不一样的地方, 就是动态的初始值都是0,静态的是直接给定值了。
所以对于动态初始化的数组,里面元素默认都是0
for (; j <= i && list[i] != result[j]; j++);
/*
* 如果再插入的那个不等于前面所有的数,那么这个j是比前 数的个数多加了一, * 这时候就可以插入数据了,就让k等于这个时候的list[i],然后K还有自增。 但是有一个问题是,
* 未赋初值时,数组的第一个值是零,如果数组中出现零,那么这样消除重复后零就都没有了。怎么解决?
*/
if (j > i || (j == i && list[i] == 0)){
result[k++] = list[i];
}
其中:|| (j == i && list[i] == 0) 应该能解决你的问题!!