よく使う書式・演算子・型を一覧表でまとめました。ブックマーク推奨。
| 書式 | 型 | 説明 | 使用例 | 出力例 |
|---|---|---|---|---|
| %d | int | 10進整数 | printf("%d", 42) | 42 |
| %ld | long | long整数 | printf("%ld", 100000L) | 100000 |
| %u | unsigned | 符号なし整数 | printf("%u", 42) | 42 |
| %f | double | 小数(デフォルト6桁) | printf("%f", 3.14) | 3.140000 |
| %.2f | double | 小数点以下2桁 | printf("%.2f", 3.14) | 3.14 |
| %e | double | 指数表記 | printf("%e", 0.001) | 1.000000e-03 |
| %c | char | 1文字 | printf("%c", 'A') | A |
| %s | char* | 文字列 | printf("%s", "Hi") | Hi |
| %p | void* | アドレス(16進) | printf("%p", &x) | 0x7fff... |
| %x | unsigned | 16進数(小文字) | printf("%x", 255) | ff |
| %X | unsigned | 16進数(大文字) | printf("%X", 255) | FF |
| %o | unsigned | 8進数 | printf("%o", 8) | 10 |
| %5d | int | 5桁右寄せ | printf("%5d", 42) | 42 |
| %-5d | int | 5桁左寄せ | printf("%-5d", 42) | 42 |
| %05d | int | 0埋め5桁 | printf("%05d", 42) | 00042 |
| %% | - | %文字そのもの | printf("100%%") | 100% |
| 書式 | 型 | 注意 |
|---|---|---|
| %d | int * | scanf("%d", &x) ← &を忘れない |
| %ld | long * | long型の読み込み |
| %f | float * | floatの読み込み(doubleではない!) |
| %lf | double * | doubleは%lf(printfでは%fでOK) |
| %c | char * | 1文字読み込み(空白も読む) |
| %s | char[] | 文字列(空白まで)。&不要 |
%lf。printf は %f でOK。この違いを間違えるバグは非常に多い。| 記法 | 意味 | 用途 |
|---|---|---|
| \n | 改行 | 最もよく使う |
| \t | タブ | 桁揃え |
| \\ | \(バックスラッシュ) | パス表示等 |
| \" | "(ダブルクォート) | 文字列内に"を入れる |
| \' | '(シングルクォート) | 文字リテラル |
| \0 | ヌル文字 | 文字列の終端 |
| \a | ベル(警告音) | ビープ音 |
| 型 | サイズ(典型) | 範囲 | printf | scanf |
|---|---|---|---|---|
| char | 1バイト | -128〜127 | %c | %c |
| unsigned char | 1バイト | 0〜255 | %u | %u |
| short | 2バイト | -32768〜32767 | %hd | %hd |
| int | 4バイト | 約±21億 | %d | %d |
| unsigned int | 4バイト | 0〜約42億 | %u | %u |
| long | 4 or 8バイト | 環境依存 | %ld | %ld |
| long long | 8バイト | 約±922京 | %lld | %lld |
| float | 4バイト | 約7桁精度 | %f | %f |
| double | 8バイト | 約15桁精度 | %f | %lf |
sizeof(型) で実際のバイト数を確認できます。サイズは環境(32bit/64bit)によって変わることがあります。| 優先度 | 演算子 | 説明 | 結合方向 |
|---|---|---|---|
| 1(最高) | () [] -> . | 括弧・配列・メンバアクセス | 左→右 |
| 2 | ! ~ ++ -- + - * & (cast) sizeof | 単項演算子(前置) | 右→左 |
| 3 | * / % | 乗除・剰余 | 左→右 |
| 4 | + - | 加減 | 左→右 |
| 5 | << >> | ビットシフト | 左→右 |
| 6 | < <= > >= | 大小比較 | 左→右 |
| 7 | == != | 等値比較 | 左→右 |
| 8 | & | ビットAND | 左→右 |
| 9 | ^ | ビットXOR | 左→右 |
| 10 | | | ビットOR | 左→右 |
| 11 | && | 論理AND | 左→右 |
| 12 | || | 論理OR | 左→右 |
| 13 | ?: | 三項演算子 | 右→左 |
| 14 | = += -= *= /= ... | 代入 | 右→左 |
| 15(最低) | , | カンマ | 左→右 |
| ヘッダ | 関数 | 機能 |
|---|---|---|
| stdio.h | printf, scanf, fprintf, fscanf | 入出力 |
| stdio.h | fopen, fclose, fgets, fputs | ファイル操作 |
| stdlib.h | malloc, calloc, free, realloc | 動的メモリ |
| stdlib.h | rand, srand, atoi, atof, exit | 乱数・変換・終了 |
| string.h | strlen, strcpy, strcat, strcmp | 文字列操作 |
| string.h | memcpy, memset, strstr, strchr | メモリ・検索 |
| math.h | sqrt, pow, abs, sin, cos, log | 数学関数 |
| ctype.h | isalpha, isdigit, toupper, tolower | 文字判定・変換 |
| time.h | time, clock, difftime | 時間 |
| limits.h | INT_MAX, INT_MIN, CHAR_MAX | 型の上下限 |