#include <stdio.h>
int main( void )
{
char str[] = "kitty on your lap";
char* a;
/* char* 型のポインタ、というイメージ */
char* *b;
/* char* と char[] はシンタックスシュガー */
a = str;
/* こう書いた方が分かりやすい? */
b = &a;
/* *b = a; */
/* 出力 */
printf( "%s\n%s\n%s\n", str
, a
, *b
);
/* char* と char[] は同じ(シンタックスシュガー)
* -> char* 型は一次元配列として表現できる
*/
/* 上と同様に
* char** と char[][] は同じ(シンタックスシュガー)
* -> char** は二次元配列で表現できる
*/
/*
* たとえば、変数xがあったとして
* 一次元配列の先頭アドレスは *x のように表される
* 二次元配列の最初の要素の先頭アドレスは ( *x )[ 0 ] と表される
*/
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbiggdm9pZCApCnsKCWNoYXIgc3RyW10gPSAia2l0dHkgb24geW91ciBsYXAiOwoJY2hhciogYTsKCQoJLyogY2hhciog5Z6L44Gu44Od44Kk44Oz44K/44CB44Go44GE44GG44Kk44Oh44O844K4ICovCgljaGFyKiAqYjsKCgkvKiBjaGFyKiDjgaggY2hhcltdIOOBr+OCt+ODs+OCv+ODg+OCr+OCueOCt+ODpeOCrOODvCAgKi8KCWEgPSBzdHI7CgkKCS8qIOOBk+OBhuabuOOBhOOBn+aWueOBjOWIhuOBi+OCiuOChOOBmeOBhO+8nyAqLwoJYiA9ICZhOwoJLyogKmIgPSBhOyAqLwoJCgkvKiDlh7rlipsgKi8KCXByaW50ZiggIiVzXG4lc1xuJXNcbiIsIHN0ciwgYSwgKmIgKTsKCQoJLyogY2hhciog44GoIGNoYXJbXSDjga/lkIzjgZjvvIjjgrfjg7Pjgr/jg4Pjgq/jgrnjgrfjg6Xjgqzjg7zvvIkKCSogLT4gY2hhciog5Z6L44Gv5LiA5qyh5YWD6YWN5YiX44Go44GX44Gm6KGo54++44Gn44GN44KLCiAJKi8KCXByaW50ZiggIiVjXG4iLCBzdHJbMl0gKTsKCXByaW50ZiggIiVjXG4iLCBhWzJdICk7CgkKCS8qIOS4iuOBqOWQjOanmOOBqwoJKiBjaGFyKiog44GoIGNoYXJbXVtdIOOBr+WQjOOBmO+8iOOCt+ODs+OCv+ODg+OCr+OCueOCt+ODpeOCrOODvO+8iQoJKiAtPiBjaGFyKiog44Gv5LqM5qyh5YWD6YWN5YiX44Gn6KGo54++44Gn44GN44KLCgkqLwoJcHJpbnRmKCAiJWNcbiIsIGJbMF1bMl0gKTsKCQoJLyoKCSog44Gf44Go44GI44Gw44CB5aSJ5pWweOOBjOOBguOBo+OBn+OBqOOBl+OBpgoJKiDkuIDmrKHlhYPphY3liJfjga7lhYjpoK3jgqLjg4njg6zjgrnjga8gKngg44Gu44KI44GG44Gr6KGo44GV44KM44KLCgkqIOS6jOasoeWFg+mFjeWIl+OBruacgOWIneOBruimgee0oOOBruWFiOmgreOCouODieODrOOCueOBryAoICp4IClbIDAgXSDjgajooajjgZXjgozjgosKCSovCglwcmludGYoICIlY1xuIiwgKCAqYiApWzJdICk7CgkKCXJldHVybiAwOwp9Cg==