[C言語] Cパズルブック 2.1.1 文字型, 文字列型, 整数型

『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