C++ 增加函数中的数组索引
我愿意编写一个代码来创建一个具有可变索引的数组(意味着在函数中有一个静态数组并向其添加值,然后退出循环,再次返回并向其末尾添加另一个值) 但是我的代码没有编译:C++ 增加函数中的数组索引,c++,arrays,C++,Arrays,我愿意编写一个代码来创建一个具有可变索引的数组(意味着在函数中有一个静态数组并向其添加值,然后退出循环,再次返回并向其末尾添加另一个值) 但是我的代码没有编译: #include <iostream> #include <conio.h> using namespace std; void arrarr(int); int main() { for (int i = 1; i < 5; i++) { arrarr(i); }
#include <iostream>
#include <conio.h>
using namespace std;
void arrarr(int);
int main()
{
for (int i = 1; i < 5; i++)
{
arrarr(i);
}
_getch();
return 0;
}
void arrarr(int y)
{
static int x[y];
x[y] = 5;
cout << x[y];
}
#包括
#包括
使用名称空间std;
空庭(内部);
int main()
{
对于(int i=1;i<5;i++)
{
阿拉尔(一);
}
_getch();
返回0;
}
空阵列(内部y)
{
静态整数x[y];
x[y]=5;
coutC++不支持可变长度数组,您需要为静态数组x
定义常量大小。您可以执行以下操作:
void arrarr(int y)
{
static int x[SOME_CONSTANT_SIZE]; //SOME_CONSTANT_SIZE known at compile time
x[y] = 5; //y < SOME_CONSTANT_SIZE
cout << x[y];
}
void arrarr(整数y)
{
静态int x[SOME_CONSTANT_SIZE];//编译时已知的SOME_CONSTANT_SIZE
x[y]=5;//y<某个常数大小
cout您的代码无法编译,因为:
static int x[y];
编译器不知道什么是x
,例如
int [0]
int [1]
int [2]
所以你可以
void arrarr(int y) {
static int x[10];
x[y] = 5;
cout << x[y];
}
void arrarr(整数y){
静态int x[10];
x[y]=5;
cout变量不能具有变量大小。必须明确定义数组的大小x
,例如:静态int x[5]
此外,数组是零索引的,这意味着第一个元素从0开始。因此循环条件应该是for(int i=0;i<5;i++)
我只想擦除数组,但将数据保留在其中以供下一个循环使用。如何做到这一点?是的,使用编译时已知的恒定大小定义数组。它将像普通静态变量一样工作,通过函数调用保留值。否,我想做一些类似于如果用户想添加另一个数字,请增加ind如果不想打印,数组的大小不能动态增加,使用<代码>向量< /C> > .<代码> >(int i=1;i<5;i++)<代码> C++代码数组开始于<代码> 0 >代码>:<代码>为(int i=0;i<5;i++)
您有什么理由不想使用std容器吗?std容器??那是什么?我只是想擦除数组,但将数据保留在其中,以备下次循环使用?我该怎么做?