帮忙解释一下这个程序
//将十进制转换成八进制代码中划红线的地方为什么要“+'0'”????高手解决,,
#include<stdio.h>
void main()
{
int decimal,i,j;
char trans[20];
printf("Enter a decimal mumber:\n");
scanf("%d",&decimal);
i=0;
while(decimal!=0)
{
trans[i++]=decimal%8+'0';
decimal/=8;
}
for(j=i-1;j>=0;j--)
printf("%c",trans[j]);
printf("\n");
}