マガジンのカバー画像

C言語

63
C言語に関するあれこれ
運営しているクリエイター

2023年4月の記事一覧

C言語教室 第23回 - スタックとキュー(回答提出)

C言語教室 第23回 - スタックとキュー(回答提出)

こちらの課題回答です。

課題コメントさんざん書きまくってきたような気がする(笑)。

少し汎用性を持たせてみたけど、データがint型固定だから、まぁまぁまぁまぁみたいな(笑)。なかなか汎用的になりきらない。もっと頑張れるだろうか。

個々のデータサイズも初期化時に指定して、データはポインタ渡しとか。任意の型に対応できるかもしれないけど、そうすると扱う型はユーザ任せになっちゃう。バグの元か。

p

もっとみる
C言語教室 第21回 - 循環リスト(回答提出)

C言語教室 第21回 - 循環リスト(回答提出)

こちらの記事の課題回答です。

今回はいよいよ、循環リストです。
先日の双方向リストにはNULL終端がありました。
循環リストにはその「終端」がありません。

「終端」というのは、プログラムのロジックにおいて、しばしば特異なものになります。結果、「if」文などの条件文が増える。コードは長くなるし不具合も出やすくなります。それに対して、その「NULL終端」を持たない循環リストは、コードを共通化しやす

もっとみる
【C言語】ポインタ変数に「const」を付けよう!

【C言語】ポインタ変数に「const」を付けよう!

C言語にはポインタ変数というものがあります。

ポインタについてはこちらもどうぞ。

char x = 13; // ←①char* px = &x; // ←②

と書くと、次のようにメモリを確保します。

もう一つ、「*px」はここを指します。

この絵からもわかる通り「px」というシンボルから2つのデータをアクセスすることができます。

1つは「0x075BCD16」。
そしてもう1

もっとみる
C言語教室 第20回 - 双方向リスト(回答提出)

C言語教室 第20回 - 双方向リスト(回答提出)

こちらの記事の課題回答です。

前回、単方向リストを回答させて頂きました。
プログラミングにおけるリストの位置付けについてはそちらの方でクダクダしく(?)申し上げました(笑)。

さて!

次は双方向リストです。
右手で前の人と
左手で後ろの人と
手をつないでいるようなものです。

単方向リストにくらべると双方向リストは情報量が増えるのですが、その分実装はしやすい。単方向リストが出来上がってますか

もっとみる
C言語教室 第19回 - 単方向リスト(回答提出)

C言語教室 第19回 - 単方向リスト(回答提出)

こちらの記事の課題と演習の回答です。

プログラムには基本的なデータ構造がいくつかあります。スタックやキューなどが有名ですが、リスト構造もその一つです。今回はこの「リスト構造」に関する課題演習です。

「基本的なデータ構造」というのは、「汎用的なプログラムにできる」ということを意味します。この「汎用的」というのはプログラムにとっては永遠の課題のようなもので、「これでもか!」というくらい汎用的に作っ

もっとみる