3

一重引用符で囲まれた文字列の整数値を計算する方法を知りたいのですが' '

私のサンプルコードは次のとおりです。

#include <stdio.h>

int main()
{
    int c = 'aA';
    int d = 'Aa';

    printf( "%d %d" , c, d);

    return 0;
}

そして、出力は次のとおりです。

24897 16737

それらの数字は何ですか?それらを計算する式はありますか?

4

3 に答える 3

5

これらは:

  1. 文字列ではありません!

  2. マルチバイト整数。値は実装によって定義されますが、通常は次の式を使用して計算されます。

    integer value of 1st character multiplied by (2 << CHAR_BITS) + integer value of 2nd character

したがって、CロケールがASCIIを使用し、8ビットバイトがあると仮定すると、は次のように'aA'なります。

97 * 256 + 65

これは24897です。

複数文字のリテラルはタイプintです。

于 2012-11-14T18:16:26.803 に答える
2

これは、変数に格納されている複数文字の文字の値です。

于 2012-11-14T18:16:30.317 に答える
1

複数文字の定数の値は、実装によって定義されます。

§6.4.4.4文字定数複数の文字(たとえば)を含む、または1バイトの実行文字にマップされない文字またはエスケープシーケンスを
含む整数文字定数の値は、 実装によって定義されます。'ab'

于 2012-11-14T18:24:02.083 に答える