解释 C 中的函数的变量声明



下面的代码是计算(base^pow)%mod

任何人都可以向我解释以下代码,该代码涉及向函数声明变量,我想知道函数分配给变量的值以及它是如何做到的。

int tmp = mypow( base, pow >> 1, mod );

整个代码:

#include<stdio.h>
int mypow( int base, int pow, int mod )
{
if( pow == 0 ) return 1;
if( pow % 2 == 0 ){
int tmp = mypow( base, pow >> 1, mod );
printf("nn%dnn",tmp);
return tmp * tmp % mod;
}
else{
return base * mypow( base, pow - 1, mod ) % mod;
}
}
int main(){
printf("nn%dnn", mypow(25,20,22));
return 0;
}

该函数将使用给定的参数执行,然后它将return()处理后的值。然后将此值分配给var

int tmp = mypow( base, pow >> 1, mod );

此行是函数递归实现的一部分。

int tmp = mypow( base, pow >> 1, mod );

这定义了一个名为tmp的变量,并将其初始化为函数调用返回的值mypow( base, pow >> 1, mod )

它不称为函数的变量声明,也许是传递给函数的参数。

因此,当您尝试调用函数时mypow(25,20,22),这三个实际的参数作为形式参数传递给被调用方。C在传递参数时,您始终通过引用方法进行调用。

相关内容

  • 没有找到相关文章

最新更新