数组和函数c++

Array and function c++

本文关键字:c++ 函数 数组      更新时间:2023-10-16

我构建了一个程序,它接受来自用户的两个输入,使用循环中的数组,它被传递给类中的一个函数,该函数将显示两个数字。

问题是当用户输入一个数字时,它是1。程序不断要求用户输入一个数字,当输入2时,程序会要求另一个数字并结束,但例如,您输入了2和3。然后它将输出2和4(所以3+1),并且最后一个数字总是加1。这是代码:

main.cpp:

#include <iostream>
#include "newclass.h"
using namespace std;
int main()
{
    int array_variable_main[2];
    for(int counter = 1; counter <= 2; counter=counter+1)
    {
        cout << "Enter a Number: " << endl;
        cin >> array_variable_main[counter];
    }
    newclass sum_object;
    sum_object.loop_function(array_variable_main, 2);
    return 0;
}

newclass.cpp:

#include "newclass.h"
#include <iostream>
using namespace std;
newclass::newclass()
{
}
void newclass::loop_function(int array_variable[], int arraysize)
{
    cout << "The numbers that are stored in the array are: " << endl;
    for(int counter = 1; counter <= arraysize; counter = counter+1)
    {
        cout << array_variable[counter] << endl;
    }
}

newclass.h:

#ifndef NEWCLASS_H
#define NEWCLASS_H
class newclass
{
public:
    newclass();
    void loop_function(int array_variable[], int arraysize);
};
#endif // NEWCLASS_H

您必须记住数组索引从零到size-1。所以对于你的数组,它是零和一。任何超出此范围的行为都会导致未定义的行为。未定义的行为无法轻易预测,因此程序的结果可能是任何东西。

在C和C++中,数组索引通常从0开始,因此此

int array_variable_main[2];
for(int counter = 1; counter <= 2; counter=counter+1)
{
  cout << "Enter a Number: " << endl;
  cin >> array_variable_main[counter];
}

将访问阵列外部的

改为

int array_variable_main[2];
for(int counter = 0; counter < 2; ++counter)
{
  cout << "Enter a Number: " << endl;
  cin >> array_variable_main[counter];
}