Why does this code produce 42012 instead of *012? I can see that it is converting the asterisk to its ASCII value but why?
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 I use a normal if else statement it works. Why?