【課題3−6 アドレス】 次のプログラムは,変数と1次元配列,2次元配列の,それぞれの値とアドレスを表示するものである.表示結果から何がわかるか. #include int main(void) { int a = 123; char str1[4] = "ABC"; char str2[3][7] = { "ABC", "DEFGHI", "JK" }; printf("a :%d¥n", a); printf("&a:%p¥n¥n", &a); printf("str1 :%p¥n", str1); printf("str1[0] :%c¥n", str1[0]); printf("str1[1] :%c¥n", str1[1]); printf("str1[2] :%c¥n", str1[2]); printf("&str1[0]:%p¥n", &str1[0]); printf("&str1[1]:%p¥n", &str1[1]); printf("&str1[2]:%p¥n¥n", &str1[2]); printf("str2 :%p¥n", str2); printf("str2[0] :%p¥n", str2[0]); printf("str2[1] :%p¥n", str2[1]); printf("str2[2] :%p¥n", str2[2]); printf("str2[0][0] :%c¥n", str2[0][0]); printf("str2[1][0] :%c¥n", str2[1][0]); printf("str2[2][0] :%c¥n", str2[2][0]); printf("&str2[0][0]:%p¥n", &str2[0][0]); printf("&str2[1][0]:%p¥n", &str2[1][0]); printf("&str2[2][0]:%p¥n¥n", &str2[2][0]); return 0; } 【実行結果】 a :123 &a:0xbffffd20 str1 :0xbffffd24 str1[0] :A str1[1] :B str1[2] :C &str1[0]:0xbffffd24 &str1[1]:0xbffffd25 &str1[2]:0xbffffd26 str2 :0xbffffd30 str2[0] :0xbffffd30 str2[1] :0xbffffd37 str2[2] :0xbffffd3e str2[0][0] :A str2[1][0] :D str2[2][0] :J &str2[0][0]:0xbffffd30 &str2[1][0]:0xbffffd37 &str2[2][0]:0xbffffd3e 【解説とヒント】 変数や配列と,そのアドレスの関係. printfの書式文字列中の%pはアドレスを表示するための変換指定.