一、递归
当执行return语句时把控制返回给该函数的调用函数。
如上题中,先是依次执行n=1,n=2,n=3,n=4然后输出结果,之后运行到return0会返回调用它的上一级函数中即n=4时的情况,然后以此类推,再进行到n=1。然后输出结果。
其原理如下:
另外把递归调用语句放在函数结尾即恰在return语句之前这样的形式叫做尾递归。
二、地址运算符&
地址运算符&即以地址为参数,%p是输出地址的说明符。
间接运算符*也叫做取值运算符来获取某地址中所存放的数值。
eg:n = 2;
p = &n 即给出该变量n的地址
k = *p 即给出该地址&n所存储的数值即k = 2;
如上程序,利用指针进行数据的交换改变的是地址,当返回主函数时,数值可以进行交换,如果使用一般的交换,例如
temp = u;
u = v;
v = temp;
这样只是在interchange函数中进行了交换,当返回到主函数时两数并未改变。