猿问

请慕友们帮小弟详细解释一下这段代码含义是什么?感激不尽!

void itoa(int n,char s[]) {  
static int i=0; //为什么一定要用静态变量???

if(n<0) {  
s[i++]='-';  
n=-n;  
}  
if(n/10)  
itoa(n/10,s);  
s[i++]=(n%10+'0');  
s[i]='\0';  

绝地无双
浏览 156回答 2
2回答

慕姐4208626

&nbsp; &nbsp; &nbsp; 1,printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。  2,printf()函数的调用格式为: printf("<格式化字符串>", <参量表>)。  3,格式输出,它是c语言中产生格式化输出的函数(在 stdio.h 中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。要输出的的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。  4,作用:在c语言中产生格式化输出的函数(定义在 stdio.h 中),其向终端(显示器、控制台等)输出字符。

千巷猫影

这个函数的功能是将一个int型数据n 转换成char型数据并储存到数组s中i必须用静态变量,因为i代表着数字n的位数。这个函数是递归实现的,如果不把i设置为静态,那么每次调用i都会变成0,这样就无法保存n的每一位的数字了。所以要运用静态局部变量的性质,即只会被初始化一次。这样变量i的值就随着函数的调用而改变。
随时随地看视频慕课网APP
我要回答