Я не совсем уверен, как и почему это работает:C++ Объявление переменной
#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;
}
Существует фактический выход для min
, INT_MAX
и min_index
Я знаю, что INT_MAX
является частью limits.h
и так min
и INT_MAX
совпадают, но min_index не получает значения, почему оно отображает значение.
'min_index' является неинициализированным переменной , содержащий случайный мусор. Доступ к его значению показывает неопределенное поведение. «Кажется, нужно работать» - одно из возможных проявлений неопределенного поведения. –
@HGI Вместо '<<" \ n "', вы должны использовать 'endl' в большинстве случаев. http://stackoverflow.com/a/213977/3141234 – Alexander
@ Александр Я бы сказал наоборот. В большинстве случаев вам не нужно сбросить буфер и оплатить соответствующую стоимость. – juanchopanza