猿问

debug 问题出在阶乘函数体内,bug提示已经注释在对应行里,麻烦解释一下

#include <stdio.h>

/* 计算一个数的立方 */

int cube(const int x) {

return x * x * x;

}

/* 计算一个数的阶乘 */

int factorial(const int x) {

int rst = 1;

for (; x > 0; --x) {       //[Error] decrement of read-only parameter 'x'

rst *= x;

}

return rst;

}

int main(void) {

const int v = 7;

printf("cube(7) = %d\n", cube(v));

printf("factorial(7) = %d\n", factorial(v));

return 0;

}


藏宝alo
浏览 1398回答 1
1回答

guozhchun

const关键字修改的变量不允许修改,在函数定义中 x 变量有const修饰,而你却在函数体中修改 x 的值(--x),因此编译器会报错
随时随地看视频慕课网APP
我要回答