这个C语言程序的函数是什么意思?

int mul(int val)
{
static int init =i;
return init * =val;
}

static int init =i; 这句 声明 变量 init 是整型,初始化 等于 i。从语法来说,初始化只允许是常数,常量,所以 这里的 i 应当是 宏常量,例如程序前面已有 #define i 1。
或 static int init =1;
声明为 static 意思是 init 的生命周期 与 程序 一样长,调用函数语句结束后,变量还活着,这次函数调用结果将保留到下次函数调用。
return init * =val; 这里,估计 多写了空格,运算符 应是 *= 而不是 * =。
函数返回 init 的 值: init = init * val。
本程序 mul() 是乘法的意思。把上次 init 的 结果 与 val 相乘 为 函数结果 并存放在 init 里。
程序写成:
#include <stdio.h>
int mul(int val)
{
static int init = 1;
return init *=val;
}
int main()
{
int x,y;
for (x=1;x<=5;x++) y = mul(x); //例子

printf("%d\n",y);
return 0;
}

例子结果 y = 1*2*3*4*5 = 120.
温馨提示:答案为网友推荐,仅供参考
相似回答