この回では、C言語におけるプログラムの基本構造、変数の意味と使い方、データ型の違い、そして正しい変数名の付け方について学習します。
C言語では、すべてのプログラムは main 関数から実行されます。以下は最も基本的なプログラムの構造です。
#include <stdio.h>
int main(void)
{
return 0;
}
#include <stdio.h> は、画面への出力やキーボードからの入力を行うための標準ライブラリを読み込む命令です。
変数とは、プログラムの実行中に必要なデータを一時的に保存するための名前付きの記憶領域です。
int score;
score = 100;
この例では、score という変数を整数型で宣言し、そこに 100 を代入しています。
変数を使うには、まずどのような種類のデータを記録するかを指定して宣言します。
int number; // 整数型
char letter; // 1文字(文字型)
float height; // 小数(単精度浮動小数点)
宣言した変数に値を代入するには、= を使います。
number = 10;
letter = 'A';
height = 175.5;
変数を宣言するということは、プログラムの実行中に使用するメモリ領域の一部に名前を付けるということです。
より具体的には、コンパイル時にどの型の変数にどれだけのサイズのメモリが必要かが決まり、実行時にはOSが管理するメモリ空間の中からそのサイズ分の領域が確保されます。
この確保された領域は、プログラムが動作している間だけ有効で、他のプログラムからはアクセスできないよう保護されます。このようにして、プログラム内で変数を安全に利用できるようになっています。
C言語では、= は「等しい」ではなく「代入」の意味を持ちます。
int a;
a = 3 + 2;
このコードは、右辺 3 + 2 を計算し、その結果(5)を左辺の a に代入するという意味です。右辺が先に評価され、その結果が左辺に代入される順序で処理されます。
変数名には以下のルールがあります。
_ を使用できるint, return, float)は使用不可int hp;
int user1;
int player_score;
int _internalValue;
int totalAmount2025;
int 1stPlace; // 数字で始まる → ×
int return; // 予約語 → ×
int スコア; // 全角文字を含む → ×
int user Score; // 空白を含む → ×
int score!; // 記号(!)を含む → ×
int float; // 予約語(データ型)→ ×
int User-Name; // ハイフン(-)を含む → ×
int ?value; // 記号で始まる → ×
int 年齢; // 日本語(全角)を含む → ×
int total$; // 記号($)を含む → ×
以下の内容から理解度を確認するための問題です。
Q1. 次のうち、C言語において正しい変数名として使用できるものはどれか。
ア. 1score
イ. user Score
ウ. _totalValue
エ. float
解説を表示
正解:ウ
解説: 変数名は英字またはアンダースコアで始める必要があります。数字で始まる(ア)、空白を含む(イ)、予約語(エ)は使用できません。
Q2. 次のコードの動作として正しいものはどれか。
int x;
x = 5 + 3;
ア. 5と3が等しいかどうかを判定する
イ. xに5と3のどちらかが代入される
ウ. xに「5+3」の計算結果が代入される
エ. エラーになる
解説を表示
正解:ウ
解説: 5 + 3 の演算結果である 8 が変数 x に代入されます。= は比較ではなく代入の意味です。
Q3. 次のうち、C言語の変数名として使えないものはどれか。
ア. total_amount
イ. _value
ウ. score$
エ. player1
解説を表示
正解:ウ
解説: $ のような特殊記号は変数名に使用できません。他の選択肢はすべてルールを満たしています。
Q4. = の記号の意味として正しい説明はどれか。
ア. 左辺と右辺が等しいことを表す記号
イ. 左辺から右辺へ値を送る記号
ウ. 右辺の値を左辺に代入する記号
エ. 条件式で使用する比較演算子
解説を表示
正解:ウ
解説: = は代入演算子であり、右辺の値や式の結果を左辺の変数に保存するために使います。等価比較(等しいかどうか比較)には == を用います。