Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 增加函数中的数组索引_C++_Arrays - Fatal编程技术网

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容器??那是什么?我只是想擦除数组,但将数据保留在其中,以备下次循环使用?我该怎么做?