求解释这段代码什么意思 谁能给简单解释下

void itoa(int num, char *str)
{
if(num < 0)
{
str[0] = '-';
str[1] = '\0';
num *= -1;
}

if(num / 10 != 0)
    itoa(num / 10, str);

for(;*str != '\0'; str++);

str[0] = num % 10 + '0';
str[1] = '\0';

将整数转换成一个字符串
先判断num是否小于0,如果是,那么第一位输出一个减号
之后通过反复除以10取余数得到每一位,转成一个数字字符。
数字转换完,最后设置'\0'代表字符串结束