The Office Uchida, School of Computer

コンピュータを学習する人の学校:パソコンキャンパス、プログラミングキャンパス
ホームC言語ワンポイント講座:ポインタと派生型徹底入門
文字の拡大

デジタルナレッジの本コンテンツの販売サイト (1ヶ月コース, 3,150円)(3ヶ月コース, 6,300円)
C言語ワンポイント講座ポインタと派生型徹底入門」 標準コース(約3時間:学習期間1ヶ月)
C言語ワンポイント講座ポインタと派生型徹底入門」 じっくりコース(約3時間:学習期間3ヶ月)

対象となる方:C言語のスキルアップを望んでいる方です。本格的なC言語のプログラミングに携われるようになりたい方が対象です

内容紹介:ある程度のC言語の知識をお持ちの方を対象に、2時間53分という短い講義時間で、 C言語のポインタ派生型について解説します。

 たとえば、次のプログラムの意味が分かりますでしょうか。

int *(*f( double x, int y ))[2];
const int (*const k)[6];
fは、「ポインタ配列を指すポインタを返す関数」であり、 kは「変更不可能なポインタ配列を指す変更不可能なポインタ」ですが、 これは派生というC言語の仕組みによって実現されています。 この講座を受講することにより、このような定義の意味がしっかりと分かるようになります。

 この講座では、たくさんのサンプルプログラムを例題として用いていますが、それらのプログラムは こちらから閲覧することができます。

 この講座の講師は、過去18年に渡り、企業や各種セミナーなどでC言語の教育に携わってまいりました。そのノウハウがこの講座に集約されています。

 なお、本講座は、受講される方に対してある程度のC言語の知識を仮定しています。そのため、C言語に関する部分の説明はしておりません。 C言語の基礎を学習したい方は、この姉妹講座である「C言語によるプログラミング 基礎編」を受講なさってから この講座を受講してください。 この講座では、C言語の派生とポインタだけを解説しているので、講義時間は前述のように2時間53分ほどになっています。 そこで、通常は1ヶ月もあれば学習するには十分と考え、1ヶ月コースを用意しました。 しかし、少し時間を取って学習したいという方のために、3ヶ月コースも用意しました。これらは学習期間が異なるだけで内容は同じものです。

利用方法:個人で利用する場合はもちろん、会社の研修・新人研修でも十分使える内容になっています。

講師

神奈川大学工学部助教授
内田智史 詳しいプロフィール

学習方法:本コンテンツの学習方法は、こちらからどうぞ。

FAQ:本コンテンツに対するFAQは、こちらからどうぞ。

FAQ:本コンテンツに対するサンプルプログラム集は、こちらのWebページに記載されています。

C言語ワンポイント講座:ポインタと派生型徹底入門(総講義時間:2時間53分12秒)
第1章 ポインタの復習 (18分28秒)
タイトル収録時間ポイント
1.1ポインタの復習18:28ポインタの利用:復習, 割り当てられていない領域をアクセス, 配列と組み合わせて利用する
第2章 派生型の復習 (37分08秒)
タイトル収録時間ポイント
2.1派生型の概要8:51派生型の復習, C言語ではどんどん派生して複雑な型を生成できる, ポインタのポインタのポインタ
2.2配列を指すポインタ18:22配列を指すポインタ, 配列を指すポインタ(基本版), 配列を指すポインタ(応用版)
2.3ポインタ配列9:55ポインタ配列, ポインタ配列のプログラム例,ポインタ配列のプログラム例:文字列版
第3章 関数を指すポインタ (51分38秒)
タイトル収録時間ポイント
3.1関数を指すポインタ15:35関数を指すポインタ, 関数を指すポインタの付け替え, 関数を指すポインタをtypedefで定義する
3.2コールバック関数7:43コールバック関数とは, コールバック関数のサンプル例, 引数を2つ取るコールバック関数の例
3.3コールバック関数の実例28:20シグナル関数とプログラム終了時の実行関数登録, バイナリサーチ, クイックソート
第4章 派生型 本格入門 (33分41秒)
タイトル収録時間ポイント
4.1派生型 本格入門 (1)14:402次元のポインタ配列,ポインタ配列を指すポインタ,2次元配列を指すポインタ
4.2派生型 本格入門 (2)19:01関数を指すポインタを返す関数、配列を指すポインタを返す関数,ポインタ配列を指すポインタを返す関数,不完全型の配列を指すポインタ
第5章 const修飾子 (32分17秒)
タイトル収録時間ポイント
5.1const修飾子 (1)10:29変更可能領域と変更不可能領域,const char * と char *const,それらのプログラム例
5.2const修飾子 (2)9:11char *const * と const char *const *,char *const *のプログラム例,const char *const *のプログラム例
5.3const修飾子 (3)5:34const int (*)[]とconst int (*const)[],const int (*)[]のプログラムによる解説, const int (*const)[]のプログラムによる解説
5.4const修飾子 (4)7:03const int *[]と int *const[],const int *[]のプログラム例, int *const[]のプログラム例

本コンテンツの学習方法

本講座は、インターネット上で学習する新しい形態の教育システムです。 すべての授業はWeb上にあり、期間内であれば、いつでも視聴することができます。

この講座で学習するサンプルプログラムは、こちらのWebページに記載されています。 プログラミング言語は座学だけでは、なかなか習得できません。ぜひ、本講座とあわせてご利用ください。

質問は受け付けておりませんが、私の大学の電子メールアドレス(uchida@inf.ie.kanagawa-u.ac.jp)には、一般の方や私の書籍の読者から多くの質問が参ります。 すべての質問に直ちに答えることはできませんが、極力解答するようにしています。常にお答えできるか分かりませんが、メールしてみてください。 なお、そのような質問は、FAQ集に登録させていただきます。

本コンテンツに対するFAQ

質問:すべてを学習するのにどのくらいの期間がかかりますか?

 e-Learningの講座を視聴するのに要する時間は、多少の個人差がありますが約6時間と見積もられます(講義時間は2時間53分)。 毎日2時間ずつ学習すれば3日で終わる計算になりますが、実際にはそうは参りません。
可能であれば、サンプルプログラムに載っている さまざまな派生の仕組みをしっかりと理解していただきたいと考えています。 そのようなことを考えると、学習するのに数週間はかかると思われますので、余裕を持って1ヶ月を標準コースとしております。
なお、じっくりと学習したい方のために3ヶ月コースも用意してあります。

質問:本講座の前提知識は、どのようなものでしょう。

 基本的なC言語の知識を仮定しています。本講座の姉妹講座である 「C言語によるプログラミング 基礎編」などを 理解していれば十分です。

質問:本講座では何か書籍を使いますか。

 本講座では特に特定の書籍を用意していただなくても、本講座で提供する資料でほぼ学習できると思います。 ただし、いくつかの点で以下の書籍を参考にしているので、もし、可能であれば、 『 内田智史、秋元勝、北川雅巳、大津崇共著:「C言語によるプログラミング スーパーリファレンス編」、オーム社 』をご用意いただくとよろしいと思います。

質問:どのような方にこの講座はお勧めですか?

 C言語のスキルアップを計りたい方です。ここで、説明している内容は、C言語の中でもかなりレベルの高い部類に属します。 しかし、複雑なデータ構造やアプリケーションを扱うプログラムを作成する際には、派生の知識が要求されることも少なくないと 思います。ぜひ、この講座を受講していただき、幅広いC言語の知識を身につけていただきたいと考えています。

質問:本講座の具体的内容が分かる資料はありませんか?

 本講座のサンプルプログラムが 役に立つと思います。ここには、本講座で学習する内容のプログラムがすべて示されています。これは、どなたでも自由に閲覧できるようになっています。

質問:本講座では、特定のCコンパイラを仮定していますか?

 本講座は、特定のコンパイラを仮定しておりません。 ただし、実行結果は、サンプルプログラム集では、 GNU gccを仮定して、その結果を載せています。しかし、その他のコンパイラ(たとえば、 Visual C++.NETなど)でも問題なく動作します。

質問:本講座で学習したプログラムをダウンロードできますか?

 本コンテンツに対するサンプルプログラムは、サンプルプログラムに記載されています。 この中からカットアンドペーストしていただければよろしいと思います。