基数排序b[bucket[d]-1]=a[i];当这位数出现次数为0时-1不会出现问题吗?

void RadixSort(int a[],int n){
    int max=0;//求数组中的最大值 
    for(int i=0;i<n;i++) max=a[i]>max?a[i]:max;
    for(int digit=1;max/digit>0;digit*=10){//从个位开始按位排序 
        int b[n];//存放一趟排序后结果的临时数组 
        int bucket[10]={0};//初始化10个桶 
        for(int i=0;i<n;i++){
            bucket[a[i]/digit%10]++;//统计数据出现次数 
        }
        for(int i=1;i<10;i++){
            bucket[i]+=bucket[i-1];//调整bucket各元素的值,调整后的值就是a中元素在b中的位置
        } 
        for(int i=n-1;i>=0;i--){//将a中的元素填充到b中(从后往前排,先入后出)
            int d=a[i]/digit%10;
            b[bucket[d]-1]=a[i];
            bucket[d]--;
        }
        memcpy(a,b,n*sizeof(int));//排序好的数组b复制回a 
    }
}

当求余后为0的数组元素为0,-1为什么不会出错

我知道了,为0相当于没有,就不会查询