I'm reading through Stroustrup's Principles and Practice using C++ book and while completing an exercise, I noticed cout exhibit some interesting behavior which I don't fully understand.
On line 7 in the code below, I expected that char + char = char, however in this case char + char = int, therefore outputting "113". I understand that the character '0' (48) + 'A' (65) equals 'q' (113) when represented as an int, but what is governing this expression resulting in an int instead of a char?
As the variable my_char contains the same value, I expected both cout statements to output "q".
1 #include <iostream>
2 using namespace std;
3
4 int main() {
5 char my_char = '0' + 'A'; // 'q'
6 cout << my_char << endl; // output: "q"
7 cout << '0' + 'A' << endl; // output: "113" -> why not "q"?
8
9 return 0;
10 }