変数の定義と命名規則
C言語では、変数を使用する前に必ず宣言が必要です。変数名には以下のルールが適用されます。
- 英字またはアンダースコア(
_)で始まること(例:int ball_radius = 20;) - 数字で始めることはできない(例:
int 2ball_radius;は無効) - 大文字と小文字は区別される(例:
heightとHeightは異なる変数) - 予約語(
int,while,returnなど)は使用不可
基本データ型とフォーマット指定子
主なデータ型とその入出力時のフォーマット指定子は以下の通りです。
整数型
int a;
scanf("%d", &a);
printf("%d", a);
浮動小数点型
float:単精度(フォーマット:%f)double:倍精度(入力時は%lf、出力時は%fまたは%lf)
float f;
double d;
scanf("%f %lf", &f, &d);
printf("%f %f", f, d);
文字型と文字列
- 文字(
char):シングルクォートで囲み、%cで入出力 - 文字列(
char[]):ダブルクォートで囲み、%sで出力
printf("%c", 'A');
printf("%s", "Hello");
大きな整数
long long int 型は非常に大きな整数を扱う際に使用し、フォーマットは %lld です。
long long x;
scanf("%lld", &x);
printf("%lld", x);
算術演算と型変換
整数同士の除算は商のみを返し、剰余は % 演算子で取得します。浮動小数点数との演算では自動的に型変換が行われます。
int a = 7, b = 3;
printf("%d\n", a / b); // 出力: 2
printf("%d\n", a % b); // 出力: 1
float c = 7.0f;
printf("%f\n", c / b); // 出力: 2.333...
自動型変換
代入時に右辺の値は左辺の型に自動的に変換されます。
float val = 3.9f;
int num = val; // num は 3 になる
明示的キャスト
int a = 10;
long b = (long)a;
float ratio = (float)a / 3; // 整数除算を回避
論理演算子
&&:両方が真なら真||:いずれかが真なら真!:真偽を反転
標準入出力
ユーザーからの入力には scanf(またはセキュア版の scanf_s)を使用し、出力には printf を使います。
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
printf("入力された値: %d\n", n);
return 0;
}
Windows環境では conio.h の _getch() を使ってバッファされないキー入力を取得できますが、これは非標準関数であり移植性に注意が必要です。
変数の基本概念
- 変数はプログラム実行中に値を変更可能な記憶領域
- 使用前に宣言が必要
- 初期化は宣言時または後から可能
int x; // 宣言
x = 5; // 代入
int y = 10; // 宣言と初期化を同時に行う
Cプログラムの構造
- プログラムは関数で構成され、
main関数がエントリポイント main関数はreturn文を含む- 実行ブロックは中括弧
{}で囲まれる - 各文はセミコロンで終了