Fibonacci C++-从“int”到“int*”的转换无效,并且初始化了“int fibo(int,int*,in
Fibonacci C++ - invalid conversion from ‘int’ to ‘int*’ and initializing argument 2/3 of ‘int fibo(int, int*, int*)’
你好,我在Fibonacci上的C++中遇到了这个程序的问题,我试图在谷歌上搜索错误,但我没有找到解决方案/解释。
有一个代码:
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <cmath>
using namespace std;
int fibo(int,int*,int*);
int conta=0;
int main() {
int n,m,f;
int fibN=1;
int fibNMeno1=0;
cout << "Calcolo del numero di Fibonacci di indice n n n" << endl;
cout << "Introdurre n (positivo e minore di 47:" << endl;
cin >> n;
n=abs(n/1);
if (n<1) {
fibN=0;
}
else {
fibo(n,fibN,fibNMeno1);
}
cout << "n Fibonacci di indice " << n << "vale: " << fibN << endl;
cout << "n numero di chiamate ricorsive: " << conta << "nn" << endl;
}
int fibo(int n, int*pfn, int* pfnMeno1) {
int t;
int tFn,tFnMeno1,tF;
conta++;
if (n==1) {
*pfn=1; *pfnMeno1=0; return 1;
}
else {
t=n%2; n=n/2;
fibo(n,pfn,pfnMeno1);
tFn=(*pfn)*(*pfn)+2*(*pfn)*(*pfnMeno1);
tFnMeno1=(*pfn)*(*pfn) + (*pfnMeno1)*(*pfnMeno1);
if(t) {
tF=tFn;
tFn=tFn + tFnMeno1;
tFnMeno1=tF;
}
*pfn=tFn;
*pfnMeno1=tFnMeno1;
return 3;
}
}
错误在哪里?它是如何在带有*的c++上工作的?
fibonacci.cpp: In function ‘int main()’:
fibonacci.cpp:23:22: error: invalid conversion from ‘int’ to ‘int*’ [-fpermissive]
fibo(n,fibN,fibNMeno1);
^
fibonacci.cpp:7:5: note: initializing argument 2 of ‘int fibo(int, int*, int*)’
int fibo(int,int*,int*);
^
fibonacci.cpp:23:22: error: invalid conversion from ‘int’ to ‘int*’ [-fpermissive]
fibo(n,fibN,fibNMeno1);
^
fibonacci.cpp:7:5: note: initializing argument 3 of ‘int fibo(int, int*, int*)’
int fibo(int,int*,int*);
fibN/fibNMeno1有int类型,但函数req。int*类型,它是指向int.的指针
如果您想将int作为int*传递,则需要获取本地变量的地址(&符号),如下所示:
fibo(n,&fibN,&fibNMeno1);
因为您可能想要fibo(n,&fibN,&fibNMeno1)
而不是fibo(n,fibN,fibNMeno1)
。。。
fibo
函数需要一个int
和两个指针。你打电话时带着三分。因此编译器无法进行隐式转换。
相关文章:
- 无符号长长 int in 循环的奇怪行为
- std::sort in vector<int> 返回 0 而不是值
- const int const&和const int&in C++有什么区别?
- 使用 static int 返回 int&in 函数
- 在函数调用中使用类型vector<pair<int,int>>::iterator&in
- 警告:格式"%d"需要类型为"int*"的参数,但参数5的类型为"in
- 了解C++代码 - "Get the number of digits in an int"
- What does int foo = bar << ' '; mean in c++?
- Parsing int in C++11 - stoi
- 初始化静态 std::map<int, unique_ptr<int>> in C++
- Fibonacci C++-从“int”到“int*”的转换无效,并且初始化了“int fibo(int,int*,in
- 错误 C2664:“print_result”:无法将参数 1 从“int (__cdecl *)(int,int,in
- int arrays in C/C++
- SQLite in 10 UWP App Assertion Error (p->iForeGuard==(int)FOREGUARD);
- v[long long int] in C++
- std::p riority_queue<int, std::vector<int>, std::更大的<int>> in min_heap函数
- *&in void headInsert(DoubleLinkList*&head, int theData)是什么意思。是否等同于 void headInsert(DoubleLinkList he
- C++ map<int, int> in Python
- 标准::make_pair: "cannot convert ‘int*’ to ‘std::pair<EndPointAddr*, EndPointAddr*>*’ in initial
- Char to Int in C++?