这个代码是用C语言把十进制整数转化为十六进制
在while循环的时候 把余数yushu放到了字符数组D的第i个
为什么当进行for循环的时候是从i-1的位置提取这个数
谢谢!
这个是i++后置运算的问题D[i++] = yushu;是将yushu赋值给D[i]然后i++,
就是每次运行都会i++一次,所以最后会多运行一次i++,所以到了for循环里面要i=i-1,因为程序并没有给D[i]赋值。
因为D[i++] = yushu;时运行完后i会加1;现在你的i就是数组的有效个数;
最大索引值应该比个数少1;所以,遍历时要i = i - 1(其实就是--i); 此时i就是最大索引值。
1 D[i++]是先使用i,在使i+1,假设最后一个为D[9++],然后i就变成了10,D[9]才有值,D[10]还为null,所以下次使用的时候是i要先减1
2 i的声明时的初值应该为0