ここで何が起きてるの?
#include <stdio.h>
int main (void)
{
int x = 'HELL';
printf("%d\n", x);
return 0;
}
版画1212501068
コンパイルエラーが予想されました。
説明は大歓迎です=)
ここで何が起きてるの?
#include <stdio.h>
int main (void)
{
int x = 'HELL';
printf("%d\n", x);
return 0;
}
版画1212501068
コンパイルエラーが予想されました。
説明は大歓迎です=)
121250106816 進数では0x48454c4c.
0x48の ASCII コードですH。0x45の ASCII コードですE。0x4cの ASCII コードですL。0x4cの ASCII コードですL。この動作は実装定義であるため、移植性がないことに注意してください。優れたコンパイラは次のような警告を出します:
$ gcc test.c
test.c: In function 'main':
test.c:4:11: warning: multi-character character constant [-Wmultichar]
C では、一重引用符を使用して文字を表し、メモリ内では数字で表されます。複数の文字を一重引用符で囲むと、コンパイラはプロセスを文書化する限り、必要に応じてそれらを 1 つの値に結合します。
あなたの番号を見ると、1212501068 は 0x48454C4C です。この数値をバイトに分解すると48、「H」45または「E」と 2 回4Cまたは「L」が得られます。