『Cパズルブック』(Alan R.Feuer, 1985)
[Mac M2 Pro 12CPU, macOS Ventura 13.3.1, clang 14.0.3]
難しかった第6章が終わり、前に戻って第2章から始めます。
問2.1.1のコードと出力は以下の通りです。
整数5は文字列としてはASCIIコード35(16進数, 10進数では53)になります。
LLDBデバッガで確認したところ、最初の2変数はスタック領域に整数やASCIIコードとして格納されていますが、stringはポインタなのでメモリアドレスが格納されていました。文字列”5″はスタック領域の前の方に格納されていました。
#include "stdio.h"
#define PRINT(format, x) printf("x = %"#format"\n",x)
int integer = 5;
char character = '5';
char *string = "5";
int main() {
PRINT(d, string);
PRINT(x, string); // 追加
PRINT(x, &string); // 追加
printf("\n");
PRINT(d, character);
PRINT(d, integer);
PRINT(s, string);
PRINT(c, character);
PRINT(c, integer=53);
PRINT(d, ('5' > 5));
return 0;
}
x = 10420060
x = 9eff5c
x = 9f4008
x = 53
x = 5
x = 5
x = 5
x = 5
x = 1 // 53(10進数) > 5はTRUE