人気ジャーニー
C言語を学ぶ
無料でインタラクティブなオンラインC言語講座。毎回のレッスンで実際にCを書きながら、変数、制御フロー、関数、ポインタ、メモリ管理まで学べます。segfaultが起きたらAIヒントが助けてくれて、修了すれば無料の証明書ももらえます。
117,962+ 人のcoddersが登録中
- 初心者向け
AIによるコーディングサポート
実践的なインタラクティブレッスン
全レッスンに音声ナレーション付き
知識を確かめるクイズ
無料の修了証明書
シラバス
セクション 1
Fundamentals
セクションを始める開始開く閉じるBuild a strong foundation with essential concepts and basic skillsはじめに
4 レッスン326- 01C言語チャレンジ
- 02Hello World!チャレンジクイズ
- 03コメントクイズ
- 04プログラムの基本構造チャレンジクイズ
変数
11 レッスン1485- 01データ型チャレンジクイズ
- 02整数型チャレンジクイズ
- 03浮動小数点型 (Float - Double)チャレンジマスタリークイズ
- 04文字型チャレンジクイズ
- 05ブール型 (Booleans)チャレンジマスタリークイズ
- 06定数チャレンジクイズ
- 07printf の基本チャレンジクイズ
- 08変数の命名規則チャレンジクイズ
- 09型キャスト パート1チャレンジマスタリークイズ
- 10型キャスト パート2チャレンジクイズ
- 11復習チャレンジチャレンジ
演算子
9 レッスン1161- 01算術演算子チャレンジクイズ
- 02剰余演算子チャレンジマスタリークイズ
- 03インクリメント・デクリメントチャレンジクイズ
- 04代入演算子チャレンジクイズ
- 05比較演算子チャレンジクイズ
- 06論理演算子 パート1チャレンジクイズ
- 07論理演算子 パート2チャレンジクイズ
- 08論理演算子 パート3チャレンジマスタリークイズ
- 09復習チャレンジチャレンジ
制御フロー
7 レッスン944- 01if文チャレンジクイズ
- 02if - else文チャレンジクイズ
- 03else if文チャレンジマスタリークイズ
- 04switch文チャレンジマスタリークイズ
- 05三項演算子チャレンジクイズ
- 06復習チャレンジチャレンジ
- 07ネストされた if - elseチャレンジクイズ
入出力
5 レッスン626- 01書式指定子チャレンジクイズ
- 02scanf の基本チャレンジマスタリークイズ
- 03復習チャレンジ #1チャレンジ
- 04入力バリデーションチャレンジクイズ
- 05復習チャレンジ #2チャレンジ
ループ
9 レッスン1053- 01Forループチャレンジマスタリークイズ
- 02Whileループチャレンジクイズ
- 03Do Whileループチャレンジクイズ
- 04Breakチャレンジクイズ
- 05Continueチャレンジクイズ
- 06復習チャレンジ #1チャレンジ
- 07ネストしたループチャレンジマスタリークイズ
- 08無限ループクイズ
- 09復習チャレンジ #2チャレンジ
関数
7 レッスン1039- 01関数の宣言チャレンジクイズ
- 02戻り値の型チャレンジマスタリークイズ
- 03引数チャレンジマスタリークイズ
- 04復習チャレンジ #1チャレンジ
- 05再帰の基礎チャレンジマスタリークイズ
- 06関数プロトタイプチャレンジクイズ
- 07復習チャレンジ #2チャレンジ
配列
8 レッスン1247- 01配列の宣言チャレンジクイズ
- 02要素へのアクセスチャレンジクイズ
- 03要素の変更チャレンジマスタリークイズ
- 04多次元配列チャレンジマスタリークイズ
- 05復習チャレンジ #1チャレンジ
- 06引数としての配列チャレンジマスタリークイズ
- 07配列のアルゴリズムチャレンジマスタリークイズ
- 08復習チャレンジ #2チャレンジ
最終チャレンジ
3 レッスン3- 01成績チャレンジ
- 02ピークチャレンジ
- 03テレビチャレンジ
セクション 2
Logic & Flow
セクションを始める開始開く閉じるMaster advanced C programming with a focus on data structures and flow control. Learn to work with complex arrays, collections, error handling, and time management.ポインタの基礎
6 レッスン540- 01ポインタとは?クイズ
- 02ポインタの宣言チャレンジクイズ
- 03アドレス演算子 (&)チャレンジクイズ
- 04間接参照演算子 (*)チャレンジクイズ
- 05NULLポインタチャレンジクイズ
- 06復習:ポインタの基本チャレンジ
ポインタと配列
5 レッスン531- 01ポインタとしての配列名チャレンジクイズ
- 02配列要素とポインタチャレンジクイズ
- 03ポインタ演算チャレンジクイズ
- 04ポインタの比較チャレンジクイズ
- 05まとめ:ポインタによる配列の走査チャレンジ
文字配列と文字列
8 レッスン858- 01char 配列としての文字列チャレンジクイズ
- 02ヌル終端文字チャレンジクイズ
- 03scanf による文字列の入力チャレンジクイズ
- 04strlen() の使い方チャレンジクイズ
- 05strcpy() の使い方チャレンジクイズ
- 06strcat() の使い方チャレンジクイズ
- 07strcmp() の使い方チャレンジクイズ
- 08まとめ:基本的な文字列関数チャレンジ
プロジェクト:簡易テキストユーティリティ
プロジェクト5 レッスン1- 01プロジェクトの概要チャレンジ
- 02文字数のカウントプロジェクト
- 03母音のカウントプロジェクト
- 04大文字への変換プロジェクト
- 05最終的な出力プロジェクト
ポインタと関数
6 レッスン641- 01値渡しチャレンジクイズ
- 02ポインタを関数に渡すチャレンジクイズ
- 03ポインタによる変数の書き換えチャレンジクイズ
- 04定番の例:値の入れ替え(Swap)チャレンジクイズ
- 05配列を関数に渡すチャレンジクイズ
- 06まとめ:関数のポインタ引数チャレンジ
メモリ管理
7 レッスン652- 01スタックメモリとヒープメモリクイズ
- 02動的メモリ確保 - malloc()チャレンジクイズ
- 03メモリ確保での sizeof() の使用チャレンジクイズ
- 04メモリ確保の失敗を確認するチャレンジクイズ
- 05free() によるメモリの解放チャレンジクイズ
- 06calloc() によるメモリ確保チャレンジクイズ
- 07まとめ:動的配列チャレンジ
構造体 (structs)
6 レッスン540- 01構造体とは?クイズ
- 02構造体の宣言チャレンジクイズ
- 03構造体変数の作成チャレンジクイズ
- 04構造体メンバへのアクセスチャレンジクイズ
- 05構造体の初期化チャレンジクイズ
- 06まとめ:学生データの構造体チャレンジ
構造体とポインタ
6 レッスン643- 01構造体へのポインタチャレンジクイズ
- 02アロー演算子 (->)チャレンジクイズ
- 03構造体の値渡しチャレンジクイズ
- 04構造体ポインタの受け渡しチャレンジクイズ
- 05構造体の動的確保チャレンジクイズ
- 06まとめ:ポインタによる構造体の変更チャレンジ
プロジェクト:簡易連絡先入力
プロジェクト5 レッスン1- 01プロジェクト:連絡先の構造体を定義するチャレンジ
- 02連絡先を作成する関数プロジェクト
- 03連絡先にデータを入力する関数プロジェクト
- 04連絡先を表示する関数プロジェクト
- 05全てをまとめるプロジェクト
Enum と typedef
6 レッスン640- 01名前付き定数のための Enumチャレンジクイズ
- 02Enum の宣言と使用チャレンジクイズ
- 03switch 文での Enum の利用チャレンジクイズ
- 04型エイリアスのための typedef の使用チャレンジクイズ
- 05構造体での typedefチャレンジクイズ
- 06まとめ:typedef と Enum の演習チャレンジ
最終復習チャレンジ
3 レッスン3- 01復習:動的な文字列結合チャレンジ
- 02復習:構造体の配列チャレンジ
- 03復習:単語の出現頻度カウンターチャレンジ
セクション 3
Object Oriented Programming
セクションを始める開始開く閉じるDiscover how to organize code with classes, objects, and reusable structuresモジュール化プログラミングの基礎
5 レッスン433- 01ヘッダーファイルクイズ
- 02インクルードガードチャレンジクイズ
- 03ソースファイルチャレンジクイズ
- 04static関数チャレンジクイズ
- 05まとめ:モジュール式計算機チャレンジ
オブジェクトとメソッド
6 レッスン642- 01オブジェクトとしての構造体チャレンジクイズ
- 02'Self' ポインタチャレンジクイズ
- 03Const の妥当性チャレンジクイズ
- 04ポインタ vs 値チャレンジクイズ
- 05ヘルパーメソッドチャレンジクイズ
- 06まとめ:Point Managerチャレンジ
オブジェクトのライフサイクル
5 レッスン533- 01コンストラクタパターンチャレンジクイズ
- 02デストラクタパターンチャレンジクイズ
- 03スタック初期化チャレンジクイズ
- 04ディープコピーチャレンジクイズ
- 05復習:Stringラッパーチャレンジ
カプセル化
5 レッスン435- 01不透明なポインタの概念クイズ
- 02不透明な構造体の定義チャレンジクイズ
- 03ゲッターとセッターチャレンジクイズ
- 04セッターでのバリデーションチャレンジクイズ
- 05まとめ:秘密の箱チャレンジ
プロジェクト:簡易銀行口座
プロジェクト6 レッスン1- 01プロジェクトのセットアップチャレンジ
- 02口座の実装プロジェクト
- 03入金ロジックプロジェクト
- 04出金ロジックプロジェクト
- 05残高の取得プロジェクト
- 06プロジェクトの仕上げ:メインループプロジェクト
コンポジションによる継承
5 レッスン531- 01構造体の埋め込みチャレンジクイズ
- 02第1メンバーの規則チャレンジクイズ
- 03親メンバーへのアクセスチャレンジクイズ
- 04アップキャストチャレンジクイズ
- 05まとめ:図形の階層構造チャレンジ
関数ポインタ
5 レッスン534- 01関数ポインタの宣言チャレンジクイズ
- 02関数ポインタの呼び出しチャレンジクイズ
- 03関数ポインタの typedefチャレンジクイズ
- 04関数を引数として渡すチャレンジクイズ
- 05まとめ:計算機のディスパッチチャレンジ
ポリモーフィズム
6 レッスン641- 01構造体における関数ポインタチャレンジクイズ
- 02メソッドのシミュレーションチャレンジクイズ
- 03インターフェースの概念チャレンジクイズ
- 04インターフェースの実装チャレンジクイズ
- 05ポリモーフィックな反復処理チャレンジクイズ
- 06復習:Greeterチャレンジ
プロジェクト:図形描画
プロジェクト5 レッスン1- 01プロジェクトの概要チャレンジ
- 02円の実装プロジェクト
- 03長方形の実装プロジェクト
- 04ポリモーフィズムの利用プロジェクト
- 05図形コンテナプロジェクト
ジェネリックコンテナ
5 レッスン534- 01voidポインタの復習チャレンジクイズ
- 02ジェネリックラッパーチャレンジクイズ
- 03ジェネリックスワップチャレンジクイズ
- 04ジェネリック比較チャレンジクイズ
- 05復習:ジェネリック配列チャレンジ
C言語のデザインパターン
4 レッスン425- 01シングルトンパターンチャレンジクイズ
- 02ファクトリパターンチャレンジクイズ
- 03イテレータパターンチャレンジクイズ
- 04まとめ:Logger Factoryチャレンジ
最終課題
4 レッスン48- 01RPGキャラクターチャレンジ
- 02動的文字列ビルダーチャレンジ
- 03ジェネリックスタックチャレンジ
- 04イベントシステムチャレンジクイズ
CoddyでC言語を学ぶ理由
- 本物のC言語コードをブラウザ上で書いて実行できます。GCCのインストールもMakefileも、ツールチェーンの設定も不要です。各演習ではC言語のプログラムをサーバー側でコンパイルし、結果をその場で表示します。
- 実際に現場で使われるC言語:ポインタと参照、配列、文字列、構造体、
mallocとfreeによる動的メモリ管理、ファイルI/O。システムプログラマに必要なCの基礎です。 - AIヒントがCコンパイラのエラーやsegfaultの読み解きと修正を手伝ってくれるので、最初からとっつきにくいどころか、自然と馴染める言語になります。
- コース修了で、無料のC言語修了証明書がもらえます。systems、embedded、OS、ゲームエンジン関連の職種など、Cの習熟が求められる場面で確かなアピール材料になります。
C言語学習についてのよくある質問
C言語は初心者でも学びやすいですか?
Cは現代的な言語に比べて機能はシンプルですが、早い段階でポインタや手動のメモリ管理に向き合うことになるので、難しいと言われがちです。本コースではこうした概念を一つずつ取り上げ、各トピックの直後に手を動かす演習を入れているので、難所が一気に押し寄せることはありません。
CとC++、どちらから学ぶべき?
組み込み、OSレベル、低レイヤのシステム開発ならCから。シンプルでハードウェアに近い言語です。アプリケーション開発、ゲームエンジン、現代的なシステム開発を狙うならC++のほうが一般的で、手動でメモリ管理する前にクラスを通じて段階的に学べます。
Cプログラミングの習得にはどれくらいかかりますか?
Cの基礎、つまり変数、条件分岐、ループ、関数あたりは、毎日練習すれば2〜4週間で身につきます。pointers、structs、動的メモリ管理に慣れるには、さらに1〜3か月かかるのが一般的です。本格的に使いこなせるようになる段階(システムレベルのコード、パフォーマンスチューニング、大規模なCコードベース)となると、数年単位の話になります。
Cプログラミングを無料でオンライン学習できますか?
はい。インタラクティブなC言語コースは無料です。レッスン、コーディング演習、クイズ、そして修了証まですべて含まれます。Cコンパイラはサーバー側で動くので、GCCやClang、IDEをローカルに入れなくてもすぐにC言語を書き始められます。
このコースを受けるためにCコンパイラをインストールする必要はありますか?
不要です。Cの演習はすべてサンドボックス環境でコンパイルされ、コードの横に実行結果が表示されます。Makefileも、IDEも、ツールチェーンの設定もいりません。
Cプログラミングコースを修了すると証明書はもらえますか?
はい。Cプログラミングコースを修了すると無料の修了証がもらえます。履歴書に載せたりLinkedInでシェアしたりできるので、これまで作ってきたシステムプログラミング系のプロジェクトやGitHubリポジトリと一緒に見せると効果的です。