我在 FORTRAN 编程多年,正在尝试学习 C++ 并将一些旧程序转移到 C++。我需要能够在函数中创建一个数组,并使用指针将其作为变量传递回主程序,而不是像 C++ 中传统的那样将其作为值传输。我在这个问题中包含了一个示例,其中创建了变量*var1
,*varr
并将*array
数据传递回主程序,并且该程序运行良好。但是,如果我变成*array
具有*array[1]
多个值的更大维数组,则该程序将不起作用。这个动作可以在 C++ 中完成,还是我被迫将此功能合并到主程序中,以便数据在主程序中可用?任何帮助将不胜感激!
第一个例子(这个有效)
#include<iostream>
using namespace std;
void test(int *var1,int *varr, int *array);
int main()
{
int var,var2,array1;
test(&var,&var2,&array1);
cout << var << "\n";
cout << var2 << "\n";
cout << array1 << "\n";
return 0;
}
void test(int *var1, int *varr, int *array)
{
*var1=20;
*varr=30;
*array=15;
}
第二个例子(这个不起作用)
#include<iostream>
using namespace std;
void test(int *var1,int *varr, int *array[1]);
int main()
{
int var,var2,array1[1];
test(&var,&var2,&array1[1]);
cout << var << "\n";
cout << var2 << "\n";
cout << array1 << "\n";
return 0;
}
void test(int *var1, int *varr, int *array[1])
{
*var1=20;
*varr=30;
*array[1]=15;
}