Ich habe ein Problem in meinem Lernen von C++, wo eine lokale Variable in einer Funktion an die lokale Variable mit dem gleichen Namen in einer anderen Funktion übergeben wird, beide dieser Funktionen in Main ausgeführt().Lokale Variablen übergeben (C++)
Wenn dies ausgeführt wird,
#include <iostream>
using namespace std;
void next();
void again();
int main()
{
int a = 2;
cout << a << endl;
next();
again();
return 0;
}
void next()
{
int a = 5;
cout << a << endl;
}
void again()
{
int a;
cout << a << endl;
}
es gibt:
2
5
5
ich, dass wieder() erwartet würde sagen, null oder 0, da 'a' wieder dort erklärt wird, und doch scheint es, um den Wert zu verwenden, der 'a' in next() zugewiesen wurde.
Warum übergibt next() den Wert der lokalen Variablen 'a' erneut an(), wenn 'a' erneut in ein anderes Mal deklariert wird()?
Nichts ist bestanden. 'a' in' again() 'wurde nicht initialisiert, irgendein Wert ist möglich. – songyuanyao
Einverstanden, also ist der Wert von "a" in undefiniertem Verhalten. – drescherjm