C言語

malloc

mallocは、指定されたサイズのメモリを動的に割り当てるC標準ライブラリ関数・・・。Man page of MALLOC引数には、割り当てるメモリのサイズを指定する・・・。 戻り値には、割り当てたメモリ領域の先頭アドレスが返ってくる・・・。これを使って、int型の動…

strcmp

strcmpは文字列同士を比較し、どちらがASCIIコード順で先か後かを判定する・・・。Man page of STRCMP戻り値が負の値の場合は、第1引数の文字列が先、 戻り値が正の値の場合は、第2引数の文字列が先、 戻り値が0の場合は、2つの文字列は等しいと判定する・・…

strcat

strcatは、文字列を別の文字配列の末尾に連結するC標準ライブラリ関数・・・。Man page of STRCAT第1引数に連結先の文字配列、第2引数に連結元の文字列を指定する・・・。 後ろから前に連結・・・。 コピー先の文字配列はNULL終端である(NULL文字で終わって…

strcpy

strcpyは、文字列を別の文字配列にコピーするC標準ライブラリ関数・・・。Man page of STRCPY第1引数にコピー先の文字配列、第2引数にコピー元の文字列を指定する・・・。 後ろから前にコピーという感じ・・・。 コピー先の文字配列は、コピー元の文字列、そ…

strlen

strlenは、文字列の長さを取得するC標準ライブラリ関数・・・。Man page of STRLEN引数に対象となる文字列(文字列リテラルや文字配列)を指定すると、戻り値として文字列の長さをバイト数で返す・・・。 文字列の長さとは言ったが、バイト単位で返すので文字…

文字列

これまでも散々扱ってきた文字列について改めて・・・。文字列は、 文字列リテラル 文字配列 に分けられる・・・。文字列リテラルは、任意のメモリが確保され、それぞれの文字が指定の文字に固定される・・・。 プログラム中でメモリを確保していないので、…

fscanf

fscanfはファイルから読み込んだデータを、指定の書式に基づいて、指定の変数や配列などに格納するC標準ライブラリ関数・・・。Man page of SCANFの2番目がfscanf、ファイルポインタ以外はscanfと同じ・・・。"test.txt"からスペース区切りのデータを読み込…

fprintf

fprintfは指定された書式でファイルに出力するC標準ライブラリ関数・・・。Man page of PRINTFの2番目にあるのがfprintfで、名前の通りprintfのようにファイルに出力できる・・・。"test.txt"に、入力された名前(name)、年齢(age)、住所(address)、を出力す…

fopen

ファイルに読み書きをするには、まず"開く"という行為をしなければならない・・・。fopenは指定されたファイル名のファイルを開くC標準ライブラリ関数・・・。Man page of FOPENここでは"test.txt"というテキストファイルを開いてみる・・・。ファイルへの入…

構造体

いくつかの異なる型の要素をまとめて、1つの新しい型として扱うことができるのが、構造体・・・。ここでは、名前、年齢、住所(といっても都道府県ぐらいでいいが)という3つの要素を、1つにまとめた簡易名簿の構造体を定義し、その構造体の変数各要素に入力さ…

ポインタ

ポインタは、変数のアドレスを格納するための変数・・・。たいていの変数は、メモリ上に割り当てられているので、そのメモリのアドレスがわかれば値にアクセスできる・・・。 そのメモリのアドレスを格納することができるのがポインタと呼ばれる特殊な変数・…

配列

これまでにも何度か出てきてる配列について・・・。配列は、同じ型のメモリ領域を連続して確保したもので、 <型名> <配列名>[<要素数>];このように宣言する・・・。たとえば、 int a[10]; は要素数10のint型配列aで、int型変数10個分に相当する・・・。ここ…

関数

これまで、プログラムをすべてmain関数の中に書いてきたが、 プログラムが巨大になってくると、読みにくいし、保守性も悪い・・・。いくつかの処理をまとめて、ひとつの関数とすることで、 ひとつひとつのコードは短く読みやすくすることができる・・・。mai…

for文

for文も繰り返し処理の構文の一種・・・。 条件式に加えて、初期化式、増分式を設定できる・・・。 for (<初期化式>; <条件式>; <増分式>){ <繰り返したい処理>; }式で初期値が決まり、とで回数も決まるので、繰り返す回数が決まっている処理の場合はこちら…

do-while文

do-while文も繰り返し処理の構文の一種・・・。do-whileは、 do{ <繰り返したい処理>; }while (<条件式>);と書く・・・。 while文と違うのは、条件式が後ろにあるということ・・・。 そして、これにより、最初の1回は無条件で必ず実行されるという特徴がある…

while文

特定の処理を繰り返したい場合は、繰り返し処理の構文を使う・・・。whileは、 while (<条件式>){ <繰り返したい処理>; }と、書くことでが真(非ゼロ)である間は、を繰り返す・・・。ここでは、入力されたn, m(n まずは、変数の宣言・・・。開始値のn、終了値…

switch-case文

分岐する条件が変数の値であれば、switch-case文を使うこともできる・・・。たとえば、 aが1なら、"a is one."とprintfで出力、 aが2なら、"a is two."とprintfで出力、 aが3なら、"a is three."とprintfで出力、 それ以外なら、"a is otherwise."とprintfで…

if-else文

if文は、条件によって処理を分岐させたい時に使う構文・・・。たとえば、 aが10なら、"a is 10"とprintfで出力 したいときは、 if (a == 10) printf("a is 10\n"); と書く・・・。 ifのあとの括弧"()"に条件式、そのあとに実行したい処理を書く・・・。 "=="…

算術演算子

変数やリテラルを使って、数値を計算するときに使う基本的な演算子が算術演算子・・・。ここでは入力された値と算術演算子を使って、四則演算と剰余算を行う・・・。 $ vi arithmetic_operator.c入力された値を格納するa, bと、add_result、sub_result、mul_…

scanf

scanfは標準入力から入力されたデータを、指定の書式に基づいて、指定の変数や配列などに格納するC言語の標準ライブラリ関数・・・。Man page of SCANF標準入力とはキーボードのこと・・・。 指定の書式というのはちょっと置いといて・・・、 とにかく数値を…

printf

久しぶりに更新・・・。 もう何度も出てきてるし、説明してるprintfだけど、ここで改めて・・・。printfは指定された書式で文字列を標準出力に出力するC言語の標準ライブラリ関数・・・。Man page of PRINTF標準出力とはいわゆるコンソール出力のこと・・・…

変数

変数は、特定の値や、計算結果などのデータを一時的に保存しておく箱みたいなイメージのモノ・・・。 ここでは、aとb、そして最終的な計算結果を格納するxという3つの変数を使って計算をし、その結果を出力するプログラムを作る・・・。 $ vi variable.c変数…

リテラル

プログラム中に直接書く数値や、文字、文字列などを"リテラル"と言う・・・。 定数という言い方もよくするが、マクロ定数と混同するので"リテラル"と言う方がいいと思う・・・。いろんなリテラルを出力するプログラムをつくる・・・。 $ vi literal.c まずは…

main関数

やっぱり、最初はC言語のSampleからと決めてるので、基本基本と・・・。まずはmain関数・・・。 C言語は実行したい処理をmain関数の中に書く・・・。main関数の先頭からプログラムは始まる・・・。 (この先頭をエントリポイントとか言ったりする・・・。)UNI…