函数学习小结
1.可变参数列表
int example(int val,...)
{
va_list var_arg; //var_list变量用于访问参数列表未确认部分
va_start(var_arg,val); //将初始值赋值给var_arg,val取参数列表数量
for(int i=0;i<val;i++)
{
printf("%d\n",var_arg);
va_arg(var_arg,int); //逐个访问参数列表,注意:只能按顺序访问,必须正确注明类型
}
va_end(var_arg);//结束访问,可提前结束,但必须按顺序访问
return 1;
}
2.递归函数
递归函数直到调用停止后才开始输出
int val=4063;//逐个输出数字
int recur(int num)
{
int temp;
temp=num%10;
num=num/10;
if(num) recur(num);
putchar(temp+'0');
}
recur(val);
堆栈中递归函数的变化:
1.num=406,执行递归函数
2.num=40,继续
3.num=4,继续
4.输出4
num=0,到达结束条件,递归结束;最后一函数执行完毕,开始退栈
5.输出0
6.输出6
7.输出3
8.结束