Почему этот код выдает 42012 вместо * 012?Я вижу, что он конвертирует звездочку в значение ASCII, но почему?
vector<int> numbers = {-1,0,1,2};
for(int num: numbers){
cout << (num == -1 ? '*' : num); //42012
}
for(int num: numbers){
if(num == -1) cout << '*'; //*012
else cout << num;
}
Если я использую нормальное выражение if else, оно работает.Почему?