我想找出使用递归和传递指针作为函数参数的数字阶乘。但是这个错误总是出现。 Debugers和编码器!我需要你的帮助。无效的操作数为二进制*(有'INT'和'INT *')
The code
#include<stdio.h>
int *factorial(int *);
int value, p=0, q=1, x, tmp;
void main() {
int *result;
puts("Enter the value::");
scanf("%d",&value);
result = factorial(&value);
printf("\nThe Result is::%d\n", *result);
}
int *factorial(int *n) {
if(*n == p || *n == q) {
return(&q);
}
else {
tmp = *n -1;
*n *= (factorial(&tmp));
return(n);
}
}
The error:
error: invalid operands to binary * (have ‘int’ and ‘int *’)
*n *= (factorial(&tmp));
错误信息中的内容是不可理解的?你的左操作数是int,好,你的右操作数是int *,不好。你想如何将一个整数与一个指针相乘? – 2014-10-05 14:21:06