変数は名前付きの箱。型はその箱の形。C23の新しい書き方(bool・0b・桁区切り)を最初から標準で学ぶ。
買い物に行く前、メモに「牛乳」「卵」と書いておきます。あとで見返せるように、情報を紙という場所に置いておく。プログラムの変数も同じで、値をとっておくための名前付きの箱です。 箱の作り方 int tanka = 250; は3つの意味を同時に持ちます。「整数用の箱を1つ用意する」「その箱に tanka という名札を付ける」「中身を250にする」。 箱を作ること…
整数はプログラムでいちばんよく使う値です。個数、点数、年、回数。それを入れる基本の箱がintです。 int の大きさと範囲 多くの環境で int は4バイト=32ビットです。32個の0と1で表せる組み合わせは約42億通り。半分を負の数に使うので、扱える範囲はこうなります。 -2147483648 〜 2147483647(およそ ±21億) 限界値は暗記せず…
平均点、身長、円周率。世の中の数値の多くは整数では表せません。小数を扱う型がdoubleです。 まずは double を使う コードに小数を書くと、その値は既定で double として扱われます。表示は %f(既定で小数点以下6桁)、%.1f のように桁数を指定できます。 float と double の違い ・float … 4バイト。有効桁はおよそ7桁。…
コンピュータは文字も数として持っています。charは1文字を入れる箱ですが、その正体はとても小さい整数です。 文字は数である 出力は A と 65 です。'A' は文字コード(ASCII)で65番。同じ箱の中身を、%c で見るか %d で見るかの違いしかありません。 覚えておくと便利な番号は3つ。'A' が65、'a' が97、'0' が48です。大文字と小…
「はい/いいえ」「オン/オフ」「合格/不合格」。2つに1つの値を扱う型がboolです。C23からは、何の準備もなくそのまま書けます。 C23の書き方 出力は 1 0。bool・true・false はC23で正式なキーワードになりました。古い記事にある #include <stdbool.h> はもう要りません(書いてもエラーにはなりません)。C99〜C17…
プログラムには「絶対に変わってほしくない値」があります。消費税率、円周率、1週間の日数。これを普通の変数にしておくと、どこかで書き換わっても気づけません。値に鍵をかけるのがconstです。 const——書き換え禁止の箱 const を付けた変数は、初期化のときにだけ値を持てます。あとから代入しようとすると、コンパイルの時点でエラーになって止まります。実行し…
計算の記号を演算子と呼びます。Cの算術演算子は5つだけです。 ・+ 足す ・- 引く ・* 掛ける ・/ 割る ・% 余り 掛け算は × ではなく *、割り算は ÷ ではなく / を使います。 優先順位——どれが先に計算されるか 出力は 14、20、3、3 です。ルールは算数と同じで、* / % が + - より先。同じ強さなら左から右へ。10 - 4 - …
ここは初心者が踏む地雷の中でも、特に命中率の高い場所です。落ち着いて一度体験しておけば、二度と踏みません。 7 ÷ 2 は 3 になる 出力は 3 と 1 です。整数どうしの / は小数点以下を切り捨てた整数を返します。3.5 が四捨五入されて4になるのではなく、容赦なく3。そして % が余りの1を返します。 7 = 2 * 3 + 1。商と余りに分ける、小…
Cは型の違う値どうしの計算を、黙って調整して実行します。便利ですが、黙っているぶん事故にも気づきにくい。自動で起きる変換と、自分で指示する変換を分けて押さえます。 暗黙の型変換——自動で起きる 出力は 4.5。intとdoubleを混ぜると、情報が失われない方向(int → double)へ揃えてから計算されます。これが暗黙の型変換です。char と int…
コードに直接書いた数値をリテラルと呼びます。同じ「10」でも書き方はいくつもあり、C23では表現が増えて、意図がより伝わりやすくなりました。 4つの書き方、同じ値 出力は 10 10 10 10。4つとも同じ値です。書き方が違うだけで、メモリに入る中身は変わりません。人間にとって読みやすい形を選べばよい、ということです。 ・0b … 2進数。ビットを1つずつ…
変数は箱だと言ってきました。ここでは、その箱の大きさをバイト単位で測る方法を覚えます。測れるようになると、メモリという場所が急に現実味を帯びてきます。 sizeof は演算子 一般的な64ビット環境では 1 / 4 / 8 / 1 と出ます。sizeof は関数ではなく演算子で、sizeof(型名) でも sizeof 変数 でも書けます。結果は size_…
動画サイトの再生回数が21億を超えたとき、カウンタの表示がおかしくなった——という事件が実際にありました。原因は int の限界です。箱に入りきらない値を入れると何が起きるのか。オーバーフローという事件を見ます。 限界の1歩先 多くの環境では 2147483647 の次に -2147483648 が出ます。最大値の1つ上が最小値。メーターが一周して戻ってしま…
もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。