いくつかの調査を行った後、算術式で char と short が内部的に int に昇格されることがわかりました。しかし、そのような整数の昇格が割り当てで内部的に発生するかどうかはまだ疑問です。
(ですから、他の式に関するリンクだけを私に与えないでください。私は、ASSIGNMENT 式の内部で何が起こるかについて質問しています)
char ch1, ch2 = -1;
ch1 = ch2; // Q
Q: 次のうち、社内で発生するのはどれですか?
1、ch1 の値がそのまま ch2 に代入されます。ここでは整数の昇格は行われません。
2, ch1の値をまずint型に昇格(8ビット→32ビット)し、32ビットの値をchar型の8ビットに降格して最終結果。整数の昇格はここで行われます。
私はこの本を見つけました: C Primer Plusの 174 ページには:
「...式に現れると、char と short は、signed と unsigned の両方で、自動的に int に変換されるか、必要に応じて unsigned int に変換されます...」
だから私はそれが 2 であるべきだと思いますが、整数昇格が起こらない 1 であるべきだと誰かが私に言ったのを聞いたことがあります。
私は本当に混乱しています。私を手伝ってくれますか?前もって感謝します。