为什么我会获得额外的垃圾输出?

时间:2018-02-09 03:09:22

标签: c++

#include <iostream>
using namespace std;
int aka(int x, int y){
    cin >> x >> y;
    x+=2;
    y*=2;
    cout << x << endl;
    cout << y << endl;
}
int main () {
    int x,y;
    cout << aka(x,y);
}

在此程序中,输出是将2添加到第一个整数,将2乘以第二个整数,但是当我输入2 4作为输入时,我得到4 85007456作为输出为什么我会收到此垃圾号码?

2 个答案:

答案 0 :(得分:3)

在这个程序中有三次打印东西:

// prints 4
cout << x << endl;

// prints 8
cout << y << endl;

// prints 5007456 (or some other garbage number)
cout << aka(x,y);

cout << aka(x, y);打印aka(x, y)的返回值,但aka中没有return语句,因此返回垃圾值。 (你应该获得编译器警告)

答案 1 :(得分:0)

在C ++函数中只返回一个值。 如果要在main中访问这些值,请使用地址运算符。

void aka(int &x, int &y)

你不需要任何回报价值。