재귀를 사용하여 숫자의 계승을 찾아서 포인터를 함수 인수로 전달하려고합니다. 그러나이 오류는 항상 나타납니다. 디버거 및 코더! 이걸로 당신의 도움이 필요합니다.2 진수 *에 대한 피연산자가 잘못되었습니다. ('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 *'입니다. 어떻게 integer에 포인터를 곱하고 싶습니까? –