import Control.Applicative
(=&) = poke
infixr 1 *=
(*=) a b = poke a =<< b
(*) = peek
char _ = 0
infixr 0 //
(%) f = malloc >>= (>>) <$> (f 'A') <*> free
{-#include<stdio.h>-}
{-int-} main = (%) $ \c p -> do
{
char c =. 'A';
char* p // "ポインタ変数の宣言";
p =& c // "変数(c) の番地を設定";
printf("%c\n", (*)p) // "ポインタ変数から文字表示";
p *= (*)p + 2 // "ポインタ変数から値を変更";
printf("%c\n", (*)p) // "ポインタ変数から文字表示";
}
aW1wb3J0IENvbnRyb2wuQXBwbGljYXRpdmUKaW1wb3J0IENvbnRyb2wuTW9uYWQKaW1wb3J0IEZvcmVpZ24KaW1wb3J0IFByZWx1ZGUgaGlkaW5nICgoKiksICgrKSkKCig9JikgPSBwb2tlCgppbmZpeHIgMSAqPQooKj0pIGEgYiA9IHBva2UgYSA9PDwgYgoKKCspIGMgaSA9IGZvbGRyICguKSBpZCAocmVwbGljYXRlIGkgc3VjYykgPCQ+IGMKCigqKSA9IHBlZWsKCnByaW50ZiA9IHNuZCA+PT4gcHV0U3RyTG4gLiAoOltdKQoKKD0uKSBfIF8gPSByZXR1cm4gKCkKCmNoYXIgXyA9IDAKCmluZml4ciAwIC8vCigvLykgZiBfID0gZiA+PiByZXR1cm4gKCkKCijvvIopIF8gXyA9IHJldHVybiAoKQoKKCUpIGYgPSBtYWxsb2MgPj49ICg+PikgPCQ+IChmICdBJykgPCo+IGZyZWUKCnstI2luY2x1ZGU8c3RkaW8uaD4tfQoKey1pbnQtfSBtYWluID0gKCUpICQgXGMgcCAtPiBkbwp7CiAgICBjaGFyIGMgPS4gJ0EnOwogICAgY2hhcu+8iiBwICAgICAgICAgICAgICAgLy8gIuODneOCpOODs+OCv+WkieaVsOOBruWuo+iogCI7CiAgICBwID0mIGMgICAgICAgICAgICAgICAgIC8vICLlpInmlbAoYykg44Gu55Wq5Zyw44KS6Kit5a6aIjsKICAgIHByaW50ZigiJWNcbiIsICgqKXApICAgLy8gIuODneOCpOODs+OCv+WkieaVsOOBi+OCieaWh+Wtl+ihqOekuiI7CiAgICBwICo9ICgqKXAgKyAyICAgICAgICAgIC8vICLjg53jgqTjg7Pjgr/lpInmlbDjgYvjgonlgKTjgpLlpInmm7QiOwogICAgcHJpbnRmKCIlY1xuIiwgKCopcCkgICAvLyAi44Od44Kk44Oz44K/5aSJ5pWw44GL44KJ5paH5a2X6KGo56S6IjsKICAgIHJldHVybiAwOwp9Cg==