2020-01-12に更新

わびゃびゃびゃびゃ☆m9(^◇^)!

ポエム☆(^~^) 公開下書き

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ポインターを解説する☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 寝てればいいのに……☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 あんた ここ15年ぐらい ポインターを使う言語を触ってないじゃないのよ!」

20200111comp1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 紙テープ があると思ってくれだぜ☆ メジャー(巻き尺)だと思ってもいい☆」

20200111comp2.png

KIFUWARABE_80x100x8_01_Futu.gif
「 ↑ ここに文字を書けばいいのか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ダメッ☆! ダメ ダメ ダメ……☆!」

20200111comp3.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 穴を開ける ぐらいは OK とする☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 パンチカード?!」

KIFUWARABE_80x100x8_01_Futu.gif
「 文字も書けないのか……☆ 絵も 音楽も無理だろ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 いける☆」

20200111comp5.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 0 ~ 7 の7マスを 1byte とし、両端に穴を開けたら A というルールにしておこうぜ☆?」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 7bit環境?!」

20200111comp6.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ ちなみに Z は こうな☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 ↑ 7bit ずつ 区切るの めんどくさ……☆」

20200111comp8.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ べつに 20200111comp9.png(ぜろをふくむえぬにじょう) のテーブルにしても構わん☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 9bit マシン?!」

20200111comp10.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 詰めて使うなだぜ☆ 新しい行……、横向きに書いてしまったので 新しい列か☆
新しい列から 続きを始めろだぜ☆
これで ZA は書けた☆ ABC も やればできるだろ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 9bit マシンの 7bit 環境?!」

20200111comp11.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 各列……、行☆? ややこしい☆!」

20200111comp13.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ レシートは縦に出てくるもんだろ☆!」

KIFUWARABE_80x100x8_01_Futu.gif
「 うわっ☆! 話しの途中で 反時計回りに90°回転した☆!」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 行? 列? 脳がっ!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 列の黒い数が bit、 行の赤い数が byte と思えだぜ☆」

20200111comp14.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ で、ピアノの鍵盤の裏側みたいなやつが 付いていて、
穴に棒を入れて 穴の位置を調べていると思ってくれだぜ☆ 穴を開けているのではない☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 上の図では、 赤10行目の横一列が いわゆる ハードディスクの ヘッド
赤の10という数は プログラム・カウンターの値 だと思ってくれだぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 アナログな説明だぜ……☆」

20200111comp15.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ プログラム・カウンターが17だったら、こうなる☆ 簡単だろ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 雑な説明だぜ……☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ところで 10進数の17は、2進数で 10001 だぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 フーン☆」

20200111comp16.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 じゃあ どっかに 10001 が 穴空いているとしよう☆ これが プログラム・カウンターの値を表しているとき、
赤の5行目は ポインター だぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 でも そんな説明じゃみんな 納得しないのよ。
目の前の プログラムが動かないんだから」

20200111comp17.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 じゃあ お前らの目の前のプログラムに似せてやるぜ☆!
ヘッドの厚みを2倍にして 2倍速だぜ☆!」

KIFUWARABE_80x100x8_01_Futu.gif
「 底引き網漁法みたいな解決方法わらう☆」

20200111comp18.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 2行同時に読み込めるなら、番号も1行飛ばしで 振っていいよな☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 1ward 18bit の 18bit マシン?!」

KIFUWARABE_80x100x8_01_Futu.gif
「 いまどき 64bit なのに 何だぜ、18bitマシンって☆」

20200111comp19.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑これが現代の64ビットマシンだぜ☆!」

KIFUWARABE_80x100x8_01_Futu.gif
「 パンチカードを売りつけるの、水素水みたいでわらう☆」

20200111comp20.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 赤1番地が、別の番地を書いていると知っていれば、
これが17番地を指す ポインター だろ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 でも そんな説明じゃみんな 納得しないのよ。
目の前の プログラムが動かないんだから」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 くそっ☆」

20200111comp21.png

20200112comp25.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 17番地に Z が入っているとしよう☆」

20200112comp25a2.png

ward initial = 'Z';

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 疑似コードで書くと こう☆」

print(initial);

# Output:
# z

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 変数 Initial の中身は Z だな☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 ポインターになると 分からなくなるのよ、箱とか出てくるポエムで何も理解できないのよ!」

20200112comp25a3.png

print(&initial);

# Output:
# 17

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ べつに……☆
アンパサンド記号(&)を付けると
変数が番地を返すのは 分かるだろ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 分かんないったら、分かんないのよ!」

20200111comp22.png

20200112comp26a2.png

ward* pInitial = &'Z';

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 何が分からないのかが分からない☆
アスタリスク記号(*)を ポインター型 としよう☆
番地17を入れれる変数を、 番地18に作っただけじゃないか☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 分かんないったら、分かんないのよ!」

print(pInitial);

# Output:
# 17

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ ポインター型の中には どこか別の番地 が入っていて☆」

print(&pInitial);

# Output:
# 18

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ ポインター型変数の頭 に & を付けると、
自分の番地が入っていて☆」

print(*pInitial);

# Output:
# Z

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ アスタリスク記号(*)を ポインター型変数の頭 に付けると、
指しているどこかの番地の中身 を取れるだけじゃないか☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 分かんないったら、分かんないのよ!」

KIFUWARABE_80x100x8_01_Futu.gif
「 C言語は アスタリスク記号 を使い回しすぎじゃないのか☆
型宣言は word* と書くのではなく address as word とでも書けば 視覚的に混乱しないだろ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 長ったらしい……、&で自分の番地確認して、 ポインターには別の番地が入っていて、 *で別の番地に行くだけだろ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ポインターのポインター というのもある☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 やめてよ!」

20200111comp23.png

20200112comp27a2.png

ward** ppInitial = &pInitial;

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ ポインターの番地を入れる ポインターがあってもいいだろ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 うぎぎぎぎ!」

print(ppInitial);

# Output:
# 18

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ ポインターのポインターには どこか別の番地が入っていて☆」

print(&ppInitial);

# Output:
# 19

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 頭に&を付ければ 自分の番地が入っていて☆」

print(*ppInitial);

# Output:
# 17

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 頭に*を付ければ 別の番地に入っている内容を取れるだけだろ☆」

print(**ppInitial);

# Output:
# Z

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ ダブル・ポインターにすれば、別の番地に入っているポインターに入っている別の番地の内容を取れるだけだろ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 うぎぎぎぎぎ!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ わかっただろ☆!」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 まーだまだ 分からないものは あるのよ! スマートポインター というのもあるのよ!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ Rust言語にしておけば そんなの覚えなくて済むのに、なんでC++使ってるんだぜ☆!」

<書きかけ>

何度でもクリック!→

むずでょ

光速のアカウント凍結されちゃったんで……。ゲームプログラムを独習中なんだぜ☆電王戦IIに出た棋士もコンピューターもみんな好きだぜ☆▲(パソコン将棋)WCSC29一次予選36位、SDT5予選42位▲(パソコン囲碁)AI竜星戦予選16位

Crieitは個人で開発中です。 興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!

ボードとは?

むずでょ の最近の記事