Ich bin nicht wirklich sicher, wie oder warum das funktioniert:C++ Variablendeklaration
#include <stdio.h>
#include<stdlib.h>
#include <limits.h>
#include <iostream>
using namespace std;
int main() {
int min = INT_MAX, min_index;
cout << min <<"\n";
cout << INT_MAX << "\n";
cout << min_index <<"\n";
system("pause");
return 0;
}
Es tatsächliche Leistung ist für min
, INT_MAX
und min_index
Ich weiß, dass INT_MAX
Teil der ist limits.h
und so min
und INT_MAX
sind gleich, aber min_index hat keinen Wert, warum zeigt es einen Wert an.
'min_index' ist eine nicht initialisierte Variable , enthält zufälligen Müll. Der Zugriff auf seinen Wert weist ein nicht definiertes Verhalten auf. "Scheint zu arbeiten" ist eine mögliche Manifestation von undefiniertem Verhalten. –
@HGI Statt '<<" \ n "' sollten Sie in den meisten Fällen 'endl' verwenden. http://StackOverflow.com/A/213977/3141234 – Alexander
@Alexander Ich würde das Gegenteil sagen. Meistens müssen Sie den Puffer nicht leeren und die damit verbundenen Kosten bezahlen. – juanchopanza