C言語初級

C言語初級カテゴリのロゴ画像

このサイトは、C言語初心者とC言語を学ぶ上で必要となる知識についての記事です。
Windowsのコマンドプロンプトについても必要な知識として解説しています。

C言語開発環境の導入

Visual Studio CodeでC言語プログラミングを始める(Windows編)
WindowsのVsCodeでC言語プログラミングを始めるベストな方法。再生ボタンを押してgccコンパイル&実行の環境が欲しい方向けの記事です。※初心者向けに手取り足取り説明しています。(たぶん)
【2026年版】WindowsにC言語開発環境(gccコンパイラ)を導入する
現時点で一番導入が簡単なWindowsのgccコンパイラを紹介します。 本記事は、プログラムやWindowsの初心者向け記事です。 懇切丁寧に(笑)コンパイラインストール後、最初のCプログラム作成+コンパイル+実行確認までを解説します。
VSCode:カスタマイズしたC言語のひな型をサッと出したい
C言語の#include <stdio.h> int main(void){…} などのひな型をVSCodeの機能でサッと挿入できるようにしましょう。
gccコンパイラのコンパイル方法おぼえ書き
gccコンパイラでのコンパイル方法の簡単な覚え書きです。 確認は、WindowsのMinGWをインストールして行っています。
gcc:ソースファイルを指定すれば同名の実行ファイルをコンパイルできるようにするバッチファイル
gccコンパイラは-oオプションで実行形式ファイル名を指定しなければならないため、少々面倒です。私は以下のようなバッチファイルで楽をしています。

文字化けに関して

Windows:コマンドプロンプト上でgccコンパイルした実行ファイルが文字化けしない方法
gccコンパイラを使ってコンパイルした実行ファイルが、コマンドプロンプト上で文字化けしてしまうことに関する対処法を長々と解説。でも最初に結論を書いておきます。
Windows10のgccでUTF8で作ったコードが文字化けする場合の対処
先日MinGWというgccコンパイラをインストールしたのですが、UTF-8で保存したC言語ソースコードをWindowsのコマンドプロンプトでコンパイルし実行したら見事文字化けしました。

C言語入門

  1. C言語を学習する前に知っておきたい用語
  2. はじめに(構造化プログラミング言語について)
  3. 最初のプログラム
  4. エスケープシーケンス文字
  5. 計算式の書き方
  6. 四則演算と演算子
  7. 演算子の優先順位一覧表
  8. 変数について
  9. 変数名のつけ方
  10. C言語の変数型一覧
  11. まずはprintf関数での画面出力を憶える
  12. C言語の予約語について
  13. 数値の表し方(10進数、8進数、16進数)
  14. キーボードから入力させる
  15. 変数と定数について
  16. 実数の計算について
  17. if文による条件判定について
  18. if文だけ複数使って判定とif~else ifで判定するの違い
  19. 数値の比較を行う(比較演算子)
  20. if文で複数の条件を1度に判断する(論理積と論理和)
  21. 否定を使ったif文の記述方法
  22. 代入式の考え方(ふだんの行いを式になおしてみる)
  23. switch文による分岐処理
  24. 繰り返し処理(while文, for文, do~while文)
  25. 繰り返し処理を使って数値の合計を求める
  26. 無限ループについて
  27. ループの中のループ(ループの入れ子)
  28. 乱数の基本的な使い方
  29. 【乱数応用】C言語でWebカラーをランダム生成する
  30. ASCIIコード表(アスキーコード表)
  31. C言語の配列について最低限の知識
  32. 配列の利用例とメリット
  33. 配列の使い道(配列をどう使えば良いか)
  34. 配列を利用して横棒グラフを描いてみる
  35. 文字の取り扱いと文字配列
  36. printfで%s指定したときの引はなぜ配列名なのか?
  37. 日本語などの全角文字をchar型で扱う際のイメージ
  38. 関数の作り方と関数の種類
  39. 関数を作るときの考え方
  40. マクロの使い方と利用例
  41. ポインタについて
  42. ポインタの利用1(関数間のやりとり)
  43. 日付と時刻を取得する
  44. コマンドラインパラメタを利用したプログラム
  45. clock関数を使ってある処理にかかった時間を計測する
  46. ファイル処理について
  47. ファイル構造体(FILE)についてちょっと詳しい説明
  48. ファイルから1バイト(半角1文字)読み取る/fgetc関数
  49. ファイルから指定バイト数を読み取る(行単位の読み取り)/fgets関数

C言語で色々やってみる & その他TIPS

C言語:棒倒し法でダンジョン(迷路)を表現する
C言語での解説ですが、アルゴリズム部分はどの言語でも対応できるよう図を使って分かりやすく解説しています。
C言語で税込価格の切り上げ・四捨五入・切り捨てをする
C言語では、どうやって実数(小数点以下を含む数)の切り捨て・四捨五入・切り上げのプログラミングをするんだろう?という方のための記事です。消費税計算を例にとり説明します。
C言語でフリップフロップ回路みたいな 0->1->0->1… を実現したい
ループ処理の中などで特定の変数を0と1交互に変化させたい。 0 -> 1 -> 0 -> 1 … ビット演算子の排他的論理和(XOR)である ^ を利用して次のようにすれば簡単にできる。
C:4桁のカプレカ数を再現してみる
このまま6174が続いていきますね。 これがカプレカ数です。(わたしも最近知ったので偉そうに言えないですが...) 4桁は必ずこの6174に収束するのです。(ちなみに3桁だと495となる)
C言語:迷路を一筆書きで抜けるゲーム
C言語を使ったコンソール画面で動くゲームです。 「Pythonでつくる ゲーム開発 入門講座」という書籍で紹介されていたPythonのtkinter(GUIライブラリ)を使ったプログラムをC言語に移植したものです。
C言語:clock関数を使ってキーボードのA~Zまでの入力速度を測るプログラム
C言語のclock()関数を使ってキーボードのA~Zまでの入力速度を計測してみようと思います。
C言語:10行で暗号化プログラム
入力した数値が暗号化されて、再度暗号化された数値を入力すると元の数に戻るという不思議なプログラムをC言語で紹介します。 今回は、コメントを入れて10行です。
C初級:全角文字列を縦に表示する
キーボードから入力した全角文字列をコンソール画面上で縦に表示するというプログラムです。何の役に立つのかは分かりません。考え方全角文字を1文字ずつ分解できれば、全角1文字+改行を表示することで縦表示がで…

C言語サンプルダウンロード

順番に入力・実行確認していくと自然とC言語が身に付くC言語ソースコードです。
zip形式になっています。

c01-10.zip
c11-20.zip
c21-30.zip
c31-40.zip
c41-50.zip
c51-54.zip

事前に憶えておくと良い知識

わたしはC言語学習にCUIの知識も必要と考えています。
コンピュータ内部がどう動いているのか理解することができるからです。
以下は、C言語学習に必須の知識ではありません。しかし、もっとコンピュータを理解したい人はぜひ読んでください。

GUI(グラフィカル・ユーザ・インターフェース)が普及する前は、コンピュータの操作は、CUI(キャラクタ・ユーザ・インターフェース)またはCLI(コマンド・ライン・インターフェース)などと呼ばれていました。
GUIがアイコンやマウスポインタを使用して視覚を通してコンピュータ操作をするのに対し、CUIは、キーボードからコマンドと呼ばれる命令を入力してコンピュータを操作します。

GUIが普及した現在、CUIは隅に追いやられがちですが、実はインターネットサーバの設置や設定・運営、あるいはハッカーなどにとっては必要不可欠な技術です。実際に最新のコンピュータでも、内部では文字ベースで命令が実行されています。

Windowsのコマンドプロンプトというソフトをご存知でしょうか?
少しだけCUIについて説明します。OSは、Windowsです。

1.コマンドプロンプトの起動
Windowsキーを押したままキーボードのRを押すと「ファイル名を指定して実行」というウインドウが開きます。
テキストボックスに「cmd」と入力してエンターキーを押します。

2.コマンドを使ってみる
よく使うコマンドです。

dir

使用例意味
dirディレクトリの内容を表示する(縦に詳細表示)
dir /wディレクトリの内容を横に(ワイドに)表示する
dir *.c拡張子がcのファイル情報を表示する

cd
ディレクトリ間の移動

使用例意味
cd hogehoge現在のディレクトリからディレクトリhogehogeに移動する
cd ..1つ上の階層に移動する
cd ../../hoge2つ上の階層にあるディレクトリhogeに移動する

type
ファイルの中身を表示する

使用例意味
type abc.txtabc.txtの中身を表示する

time
現在時刻を表示・変更する

使用例意味
time /t現在時刻を表示する
time現在時刻を変更する

date
現在日付を表示・変更する

使用例意味
date /t現在日付を表示する
date現在日付を変更する

mkdir
ディレクトリを作成する

使用例意味
mkdir hoge現在のディレクトリにhogeというディレクトリを作成する

exit
コマンドプロンプトを終了する

使用例意味
exitコマンドプロンプトを終了する

マウス操作だと簡単なことがCUIだといちいちキーボードから命令を入力して実行という手順をとるため面倒です。
例えばワードのドキュメントファイルをダブルクリックで済むところを

msword.exe hogehoge.docx[enter]

などのように打ち込んで起動しなければなりません。
でも、コンピュータに対してはどんな情報が必要なのかがよく分かります。

【仕事で使う方は読んでみてください(30秒)】C言語における知見

C言語について、こんなことを言った方がいます。(こちらの方@badboy_です)

The first rule of C is don’t write C if you can avoid it.

日本語訳

C言語の第1のルールは、「もし避けられるならC言語を使うな」ということです。

C言語には色々なバージョンがあり、もしC言語以外でそれを実現できるのならそうした方がいいよという教えです。
仕事でC言語の案件があった場合に少し立ち止まって考えてみてもいい部分です。

詳しくは以下が参考になります。

旧時代のC言語を使うのはそろそろやめよう。 – Qiita
まず、何も言わずに下記の記事をお読んでください。 How to C (as of 2016) 英語は・・・という方は、下の翻訳をお読みください。 2016年、C言語はどう書くべきか (前編) 2016…

とはいえ、このサイトはC言語初級という位置づけですので、管理人のわたしとしては以下で締めくくりたいと思います。

多くのプログラミング言語の親であるC言語でプログラミングの海に漕ぎ出そう!

タイトルとURLをコピーしました