苦しんで覚えるC言語メモ(開発環境構築含む)

はじめに

知人からC言語学ぶとエンジニアとしての基礎ができて役に立つよ!とアドバイスいただいたので少しだけ触ってみました。

✅参考

苦しんで覚えるC言語 

環境構築

MacでのC言語の環境構築

環境構築は上記記事参考。

Xcodeはすでにインストール済みなので以下で確認。

$ gcc -v
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 12.0.0 (clang-1200.0.32.4)
Target: x86_64-apple-darwin19.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

✅動作確認

hello.cの作成

#include <stdio.h>

int main (void){
    printf("Hello,world!\n");
    return 0;
}

コンパイル実行

$ gcc hello.c

実行

$ ./a.out
Hello,world!

0章 コンピュータとは何か?

コンピュータにできることは計算だけ。

CPUは計算を担い、メモリは計算結果を記憶する。

プログラミング言語はコンピュータに計算させるために作られた言語。⇄事前言語に比べて意味が明確であり、明確に命令しないといけない。

コンピュータの緻密さにウンザリして、抽象化するためにプログラミング言語は作られた。

1章 世界最小のプログラム

✅何もしないプログラム

C言語は関数の集まり

関数の定義方法

// 型名 関数名(引数) {処理}
int main(void) {return 0;}

✅コンパイラは翻訳ソフト

コンピュータは2進数(マシン語※機械語)で動く。

そこからどんどん人が扱えるように効率化し、世界初のプログラミング言語FORTRANが誕生した。

プログラミング言語はコンピュータで認識しないため、コンパイラというマシン語への翻訳ソフトが必要。

2章 プログラムの書き方

※内容としてはC言語の特徴

C言語の最小単位はトークン(単語)

※これ以上分解すると意味が変わってしまうもののため、トークン同士はつなげて書いてはいけない。

C言語は大文字と小文字を区別し、文末は;を記載する。全角文字を認識しない。

3章 文字列の表示

文字列の表示にはprintf関数を用いる

printf("Hello, world");

ただし、このままでは動かない!!

printfはC言語自体の機能ではないため、コンパイラにprintfの説明書を読ませなければいけない。

そのための記述は#include擬似命令を使う。

# include <stdin.h> // <>内は説明書のファイル名

✅改行に関して

C言語では改行するためにエスケープシーケンスを使う。

¥n // 👈これで改行を表す。またパソコンの仕様の違いにより海外では¥ではなく\を使うが、内部的には全く同じ文字として扱われる。

※/nを文字列として表示したい場合は「//n」でエスケープ処理して表示させる。

🙄ここまできてやっと環境構築で文字出力したソースコードの意味がわかりました。

数値の表示と計算

文字列は””で囲み、これを文字列リテラルと呼ぶ。

printf関数で数値を表示するには出力変換指定子「%d」を使用する。※実数値には「%f」を使用する

printf("%d", 100); // 実行結果:100

数値と文字列を同時に使う場合

printf("%d", 100);
printf("円¥n"); // 実行結果:100円

以下でも同義。

printf("%d円¥n", 100); // 実行結果:100円

複数の数値の表示

printf("%d+%d=%d¥n", 100, 200, 300); // 実行結果:100+200=300

計算する

printf("%d¥n", 100+200); // 実行結果:300

🙄%dが後述の引数??の数値に置換されるんですね〜

5章 数値の記憶と計算

変数とは、数値を保存しておくためのメモリ領域に名前をつけて管理する方法。変数に名前をつけることを宣言と呼ぶ。

代入とは、変数に数値を記憶させること。

int a = 100;
printf("Aは%dです。¥n", a) // 実行結果:Aは100です。

6章 キーボードからの入力

scanf関数を用いる。

※以下実行されると入力待機になる。

scanf("%d¥n", &data); // scanf("入力変換指定子", &変数名)

※文字列など入力されるとエラーになる。またscanf関数自体禁止にしている企業もあるとか。

7章 比較と判断

※後日追記

おわりに

読み物として普通に面白くさくっと読める書籍だったので、C言語ではあるものの読破できるかもしれない。

コメントを残す