- 125 名前:124 mailto:sage [2020/05/30(土) 16:49:13.96 ID:A5Abb6S3.net]
- すまん 124 は間違ってるみたい、忘れてくれ。
char c = '8'; // '8'を表す文字コードの値(ASCIIでは56) char型 // '0' ... '0'を表す文字コードの値(ASCIIでは48) char型 // c - '0' ... '8'を表す文字コードから'0'を表す文字コードを引いた値(==8) int型 int a = c - '0'; // 数値8 で int変数a を初期化・代入 思うに「'8' - '0' が 8 になる」('8'の文字コードでなく「タダの8」) という部分に引っ掛かってるんじゃなかろうか。 '8' - '0' は「char型の8」ではなく「int型の8」だね。(以下検証コード) std::cout << "sizeof('8') == " << sizeof('8') << '\n'; std::cout << "sizeof('8'-'0') == " << sizeof('8'-'0') << '\n';
|

|