ユーニックス総合研究所

  • home
  • archives
  • programming-cgengo-shoshinsya

【プログラミング】C言語の初心者の手引き

C言語の初心者のためのステップアップ手引き

プログラミングを学ぶC言語の初心者の方。
どうやって学んでいったらステップアップできるのか?
というところが気になると思います。

この記事では初心者の人がステップアップしていくための道筋を手引きします。
この記事を読めばC言語を学ぶための方向性もバッチリです。

結論は

  • C言語の基礎を学ぼう
  • 高度な処理の習得を目指そう

です。

初心者は最初に何を学ぶべきか?

プログラミングを学ぶC言語の初心者の方は最初に何を学ぶべきか?
というところですが、これはやはり「基礎」になります。

  • 初心者は基礎を学ぼう

プログラミングで一番大事なものは何か? というところですが、これは基礎だと言えます。
基礎がしっかりしていればその上に乗る応用も安定します。
逆に基礎がしっかりしてないと土台からグラグラしてしまいます。

  • 基礎がしっかりしてないと土台がグラつく

C言語ではとにかく基礎の習得が大事です。
基礎を習得すればポインタやファイル処理などの高度な処理もできるようになっていきます。
C言語の基礎は↓になります。

  • コンパイル方法を学ぼう
  • 計算式を学ぼう
  • 変数の作り方を学ぼう
  • if文を学ぼう
  • for文を学ぼう
  • 関数の作り方を学ぼう
  • ファイルの分割方法を学ぼう

コンパイル方法を学ぼう

C言語の初心者の人は最初にHello, World!プログラムから入ると思います。
そこでソースコードを「コンパイル」する必要があります。

コンパイルとはコンパイラでソースコードを実行可能ファイルに変換することです。
そしてコンパイルして出来上がった実行ファイルを実行するわけですね。

  • コンパイラでコンパイルする方法を学ぼう

このコンパイル方法はぜひとも暗記しておきたいところです。
実際はコンパイル方法はいろいろな方法があるのですが、基礎的な方法は暗記しておきましょう。

その方がその後の学習効率も上がります。
最初は覚えられないと思いますが、何度もやっているうちに覚えていきます。

  • Hello, World!プログラムを作る方法は暗記しておこう

計算式を学ぼう

計算式とはたとえば「1 + 1」というのが計算式です。
他には「3 - 2」とかもそうですね。

計算式は足し算や引き算、それから掛け算や割り算、剰余算などがあります。
これらの算式は学んでマスターしておきたいところです。

  • マスターしよう
  • 足し算
  • 引き算
  • 掛け算
  • 割り算
  • 剰余算

C言語の掛け算は「*」だったり割り算は「/」だったり、剰余算は「%」だったりします。
ですのでこの独特の記法に慣れ親しんでおきましょう。

関連記事
C言語の代入演算子で変数に値を代入する方法
C言語で余りを求める%演算子の使い方【剰余】

関連動画
C言語で演算子を入力して計算させるプログラムを作る - YouTube
C言語の剰余演算子の使い方【余りを求める mod】 - YouTube

変数の作り方を学ぼう

C言語では変数というものがあります。
これは計算結果を入れておく箱のようなものです。

変数には「型」があり型によって入れられるものが変わります。
たとえばint型の変数は↓のように書きます。

int n;  

↑のnというのが変数です。
この変数はint型なので整数を入れることができます。

関連記事
C言語の代入演算子で変数に値を代入する方法
C言語で文字列を変数に代入する2つの方法を徹底解説

関連動画
C言語の「変数」とは何か?わかりやすく解説します【初心者向け】 - YouTube

if文を学ぼう

C言語は色々な「文」で構成されています。
そのうちの基本的な文が「if文」です。

if文は条件分岐に使います。
「AのときはBの処理、Cの時はDの処理をしたい」
というようなときに使えます。

if文は例えば↓のように書きます。

if (1 + 2) {  
    printf("真です");  
}  

関連記事
C言語のif文の書き方【if, else if, else】

関連動画
C言語のif文、パーフェクトガイド【初心者向け】 - YouTube

for文を学ぼう

for文は「繰り返し」を行う文です。
繰り返しはループ処理とも言います。

大量のデータを処理したい時などはfor文を使うのが普通です。
for文がないと大量処理ができないので大変重要な文と言えます。

将来的に高度なプログラムを作りたい場合はぜひともマスターしておきたい文ですね。
for文は例えば↓のように書きます。

for (int i = 0; i < 4; i++) {  
    printf("%d\n", i);  
}  

関連記事
C言語のfor文

関連動画
C言語のfor文を嚙み砕いて解説します【初心者向け】 - YouTube

関数の作り方を学ぼう

関数とはC言語の機能の1つです。
長くなった処理を分割したい時などに関数が使われます。

関数を使わないとプログラムのソースコードが長くなってしまいます。
ソースコードがだらだら伸びて産業廃棄物になってしまうこともあります。

ですので関数を使って適切に処理を分割するのが大事です。
C言語の関数は↓のように書きます。

void func(void) {  
    printf("Hello, World!\n");  
}  

関連記事
C言語の関数の作り方とは?処理をわけてプログラムをスッキリさせる

関連動画
C言語の関数の作り方【返り値の型、関数名、仮引数、ブロック】 - YouTube

ファイルの分割方法を学ぼう

ファイルの分割方法とはソースコードを複数のファイルに分けて保存することです。
ソースコードの分割は中・大規模開発でも必須になってきます。

ですのでファイルの分割方法を学んでおくことは非常に大事と言えます。
もっとも、ポインタやファイル処理はファイルの分割方法を学ばなくても学ぶことができます。
ですのでファイルの分割方法は後回しにして学ぶ、という選択肢もありです。

初心者は何を目指して学ぶべきか?

基礎を学ぶのは良いとして、初心者は何を目指して学ぶべきでしょうか?
身近な目標が欲しいところですよね。

私が思うに初心者の人は↓を目標にして頑張るといいと思います。

  • ポインタの習得を目指そう
  • ファイル処理の習得を目指そう
  • 自作ライブラリを開発できるようになろう

ポインタの習得を目指そう

C言語の初心者をちぎっては投げ、ちぎっては投げてきた初心者キラーとも言うべきC言語の機能。
それがこの「ポインタ」です。

ポインタとは簡単に言うと変数のアドレスを保存する変数のことを言います。
ですが、この考え方が普通の人には馴染みがないので難しいとされています。

  • ポインタは馴染みがないので難しい?

じっさい私もC言語のポインタについては最初はさっぱりでした。
使い方はわかるんですが、その仕組みとかがさっぱり訳わかりません。
モヤモヤしたらヒトカラでストレス発散しましょう。

🦝 < ヒトカラの正しい活用

🐭 < そんなにストレスか

* ポインタは手ごわい

しかし「C言語と言えばポインタ」と言うようにポインタはC言語の目玉機能です。
これは是非ともマスターしておきたいところです。

関連記事
C言語のポインタのメリットとは?コピーしますかメモリを共有しますか
C言語のポインタの宣言と初期化方法

関連動画
C言語のポインタのメリット・デメリットを解説 - YouTube
C言語のアドレスについて解説します【変数のアドレス、ポインタ変数のアドレス】 - YouTube

ファイル処理の習得を目指そう

もう1つが「ファイル処理の取得を目指す」ということです。

ファイル処理も基礎的な処理ですが初心者の人からすると高度な処理と言えます。
このファイル処理ができるようになるとデータをディスクに保存することができるようになります。

  • ファイル処理でデータを外に保存できる

そうすると日記帳やTODOリストのような永続的なデータを扱うプログラムも作れるようになります。
ファイル処理を習得すると作れるプログラムの幅がぐんと広がります。

ですのでこのファイル処理の習得を目指すのもいい案だと思います。

関連記事
C言語でファイル操作する方法~ハッカーのたしなみ
C言語のfopen関数でファイルを開く方法【fcloseも解説】

関連動画
C言語でテキストファイルの内容を読み込む【read_file】 - YouTube

自作ライブラリを開発できるようになろう

そして難易度は高いですが「自作ライブラリの開発を出来るようになる」というのも良い目標です。

ライブラリとはプログラミングで便利な道具を集めたパッケージです。
自作ライブラリを作れるようになると自分で作った便利な関数などをコレクションすることもできます。

  • 自作ライブラリに便利関数をコレクションしよう

そうするとGitHubなどでその自作ライブラリを公開すればだれか使ってくれる人も出てくるかもしれません。
つまり自作ライブラリの開発というのはそういったOSS世界への入り口になるということですね。

関連記事
魔法の壺、プログラミングのライブラリ(Library)とは

ポインタを習得するコツ

ここでポインタを習得するコツについて解説したいと思います。
C言語ではポインタでつまづく人が多いです。
ですのでポインタを挫折の理由にしてしまう人もたくさんいます。

ここで解説するコツが役に立てばいいのですが。
コツは↓です。

  • いきなりポインタのすべてを理解しようとするのはNG
  • 最初は使い方だけ学べばOK
  • 何度も使っていくうちにポインタの理解も深まる

いきなりポインタのすべてを理解しようとするのはNG

ポインタはC言語の一機能ですが、けっこう奥が深いものです。
ですのでポインタのすべてを一度に理解しようとするのはあまりおすすめしません。

  • 一度にすべて理解しようとするのは難しい

ポインタはただでさえプログラミング初心者には関係が薄い機能です。
中級者以上でさえポインタを嫌う人もいるぐらいです。

ですのでポインタについて最初から一度で理解しようとするのはやめておきましょう。
コツは「ちょっとずつ」です。

  • ちょっとずつ学ぼう

最初は使い方だけ学べばOK

C言語のポインタは最初は使い方だけ学んでおきましょう。
具体的な仕組みとか、そういうのは最初は無視していいです。

  • 最初は使い方だけ学ぼう

ファイルポインタはどう使えばいいのかとか、ポインタは使い終わったらどう後始末するのかとか。
こういうところを押さえておきましょう。

ポインタの仕組みについて詳しくなろうとすると、途端にハードルが上がります。
最初は「習うより慣れろ」で慣れるところから始めてください。

何度も使っていくうちにポインタの理解も深まる

ポインタは習うより慣れろです。
具体的な仕組みなどわからなくていいので、最初はどんどん使って慣れましょう。
そしてエラーやバグなどをたくさん出してください。

  • エラーやバグをどんどん出そう

そういった経験が下地になってポインタの理解が進むようになります。
慣れてきたら改めてポインタの具体的な仕組みについて勉強してみてください。
それもダメだったらまた時間を置いて再チャレンジしましょう。

🦝 < 何度も再チャレンジするのが大事なんだね

🐭 < そうだね

ファイル処理のコツ

ファイル処理のコツについても解説します。
ファイル処理もポインタと同じです。
つまり「習うより慣れよう」です。

  • ファイル処理は習うより慣れよう
  • エラーをどんどん出そう

ファイル処理だと言っておっかなびっくりやるといつまで経っても上達しません。
ガンガンとエラーやバグを出しまくって慣れてしまいましょう。

自作ライブラリの開発のコツ

自作ライブラリの開発のコツはなんでしょうか?
それは「自分がよく書く処理」を関数にすることです。

ライブラリと言うのは開発の時間を短くするためにあります。
ですのでそういったショートカットになる関数を作るようにしましょう。

たとえばファイル内容をすべて読み込んで文字列にする。
というような処理は関数にしてライブラリにできます。
これについては↓の動画をご覧ください。

C言語でテキストファイルの内容を読み込む【read_file】 - YouTube

おわりに

今回はプログラミングを学ぶC言語初心者のためのステップアップ手引きを解説しました。
基礎を学び応用を学びましょう。

🦝 < 基礎が大事やね

🐭 < そうやね