このサイトは、C言語初心者とC言語を学ぶ上で必要となる知識についての記事です。
Windowsのコマンドプロンプトについても必要な知識として解説しています。
C言語開発環境の導入
文字化けに関して
C言語入門
- C言語を学習する前に知っておきたい用語
- はじめに(構造化プログラミング言語について)
- 最初のプログラム
- エスケープシーケンス文字
- 計算式の書き方
- 四則演算と演算子
- 演算子の優先順位一覧表
- 変数について
- 変数名のつけ方
- C言語の変数型一覧
- まずはprintf関数での画面出力を憶える
- C言語の予約語について
- 数値の表し方(10進数、8進数、16進数)
- キーボードから入力させる
- 変数と定数について
- 実数の計算について
- if文による条件判定について
- if文だけ複数使って判定とif~else ifで判定するの違い
- 数値の比較を行う(比較演算子)
- if文で複数の条件を1度に判断する(論理積と論理和)
- 否定を使ったif文の記述方法
- 代入式の考え方(ふだんの行いを式になおしてみる)
- switch文による分岐処理
- 繰り返し処理(while文, for文, do~while文)
- 繰り返し処理を使って数値の合計を求める
- 無限ループについて
- ループの中のループ(ループの入れ子)
- 乱数の基本的な使い方
- 【乱数応用】C言語でWebカラーをランダム生成する
- ASCIIコード表(アスキーコード表)
- C言語の配列について最低限の知識
- 配列の利用例とメリット
- 配列の使い道(配列をどう使えば良いか)
- 配列を利用して横棒グラフを描いてみる
- 文字の取り扱いと文字配列
- printfで%s指定したときの引数はなぜ配列名なのか?
- 日本語などの全角文字をchar型で扱う際のイメージ
- 関数の作り方と関数の種類
- 関数を作るときの考え方
- マクロの使い方と利用例
- ポインタについて
- ポインタの利用1(関数間のやりとり)
- 日付と時刻を取得する
- コマンドラインパラメタを利用したプログラム
- clock関数を使ってある処理にかかった時間を計測する
- ファイル処理について
- ファイル構造体(FILE)についてちょっと詳しい説明
- ファイルから1バイト(半角1文字)読み取る/fgetc関数
- ファイルから指定バイト数を読み取る(行単位の読み取り)/fgets関数
C言語で色々やってみる & その他TIPS
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 ../../hoge | 2つ上の階層にあるディレクトリhogeに移動する |
type
ファイルの中身を表示する
使用例 | 意味 |
type abc.txt | abc.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言語の案件があった場合に少し立ち止まって考えてみてもいい部分です。
詳しくは以下が参考になります。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9JUU2JTk3JUE3JUU2JTk5JTgyJUU0JUJCJUEzJUUzJTgxJUFFQyVFOCVBOCU4MCVFOCVBQSU5RSVFMyU4MiU5MiVFNCVCRCVCRiVFMyU4MSU4NiVFMyU4MSVBRSVFMyU4MSVBRiVFMyU4MSU5RCVFMyU4MiU4RCVFMyU4MSU5RCVFMyU4MiU4RCVFMyU4MiU4NCVFMyU4MiU4MSVFMyU4MiU4OCVFMyU4MSU4NiVFMyU4MCU4MiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnM9MDc0NTVhZjRiZWQ1Zjc2MTc5ODAwNzQyMmUzYjgxNjY&mark-x=142&mark-y=57&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDByYWNjeSZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9ZTQwZjc0NWIxMWZiMzM3YzczMGIwNmFjOGJiOTM5NWY&blend-x=142&blend-y=486&blend-mode=normal&s=59e891e9ff1daa0c696682eebac3cb91)
とはいえ、このサイトはC言語初級という位置づけですので、管理人のわたしとしては以下で締めくくりたいと思います。
多くのプログラミング言語の親であるC言語でプログラミングの海に漕ぎ出そう!