i trying understand going on code:
cout << '5' - '3'; is printing int? why automatically change them ints when use subtraction operator?
in c++ character literals denote integer values.
a basic literal '5' denotes char integer value, extant character encodings 48 + 5 (because character 0 represented value 48, , c++ standard guarantees digit values consecutive, although there's no such guarantee letters).
then, when use them in arithmetic expression, or write +'5', char values promoted int. or less imprecisely, “usual arithmetic conversions” kick in, , convert nearest type int or *higher can represent char values. change of type affects how e.g. cout present value.
* since char single byte definition, , since int can't less 1 byte, , since in practice bits of int value representation bits, it's @ best in pedantic formal char can converted higher type int. if possibility exists in formal, it's pure language lawyer stuff.
Comments
Post a Comment