C言語リファレンス
これはクイックリファレンスマニュアルです——最初から最後まで読む必要はありません。必要なときに調べて使ってください。
キーワード早見表
C89キーワード(32)
| キーワード |
説明 |
auto |
自動記憶域期間(デフォルト) |
break |
ループまたはswitchの脱出 |
case |
switchの分岐ラベル |
char |
文字型 |
const |
定数修飾子 |
continue |
次のループ反復へ跳躍 |
default |
switchのデフォルト分岐 |
do |
do-whileループ |
double |
倍精度浮動小数点 |
else |
if-elseのelse分岐 |
enum |
列挙型 |
extern |
外部リンケージ宣言 |
float |
単精度浮動小数点 |
for |
forループ |
goto |
無条件ジャンプ |
if |
条件文 |
int |
整数型 |
long |
長整数修飾子 |
register |
レジスタ記憶のヒント |
return |
関数の戻り |
short |
短整数修飾子 |
signed |
符号付き修飾子 |
sizeof |
型または変数のサイズ取得 |
static |
静的記憶域期間または内部リンケージ |
struct |
構造体 |
switch |
多分岐選択 |
typedef |
型の別名 |
union |
共用体 |
unsigned |
符号なし修飾子 |
void |
空型 |
volatile |
最適化防止修飾子 |
while |
whileループ |
C99追加キーワード(5)
| キーワード |
説明 |
_Bool |
ブール型(通常はboolマクロ経由) |
_Complex |
複素数型 |
_Imaginary |
虚数型 |
inline |
インライン関数のヒント |
restrict |
ポインタエイリアス制限 |
C11追加キーワード(7)
| キーワード |
説明 |
_Alignas |
アライメント指定 |
_Alignof |
アライメント要件の取得 |
_Atomic |
アトミック型 |
_Generic |
ジェネリック選択 |
_Noreturn |
関数が戻らない |
_Static_assert |
静的アサーション |
_Thread_local |
スレッドローカル記憶域 |
フォーマット指定子早見表
printf フォーマット指定子
| 指定子 |
出力型 |
例 |
%d / %i |
符号付き10進整数 |
printf("%d", 42) → 42 |
%u |
符号なし10進整数 |
printf("%u", 42U) → 42 |
%o |
符号なし8進数 |
printf("%o", 8) → 10 |
%x |
符号なし16進数(小文字) |
printf("%x", 255) → ff |
%X |
符号なし16進数(大文字) |
printf("%X", 255) → FF |
%f |
10進浮動小数点 |
printf("%f", 3.14) → 3.140000 |
%e |
科学記数法(小文字e) |
printf("%e", 0.001) → 1.000000e-03 |
%E |
科学記数法(大文字E) |
printf("%E", 0.001) → 1.000000E-03 |
%g |
%fか%eを自動選択 |
printf("%g", 0.0001) → 0.0001 |
%c |
文字 |
printf("%c", 'A') → A |
%s |
文字列 |
printf("%s", "hi") → hi |
%p |
ポインタアドレス |
printf("%p", ptr) → 0x7ffd... |
%ld |
long |
printf("%ld", 100000L) |
%lld |
long long |
printf("%lld", 1LL<<40) |
%zu |
size_t |
printf("%zu", sizeof(int)) |
%% |
パーセント記号自体 |
printf("100%%") → 100% |
printf 修飾子
| 修飾子 |
意味 |
例 |
%- |
左詰め |
"%-10s" |
%0 |
ゼロ埋め |
"%05d" → 00042 |
%m |
最小フィールド幅 |
"%10d" |
%.n |
精度 |
"%.2f" → 3.14 |
scanf フォーマット指定子
| 指定子 |
読み取り型 |
%d |
int |
%u |
unsigned int |
%ld |
long |
%f |
float |
%lf |
double |
%c |
文字 |
%s |
文字列(空白で停止) |
%[...] |
スキャン集合 |
%*d |
読み取るが破棄 |
エスケープ文字表
| エスケープシーケンス |
意味 |
ASCII値 |
\a |
警告(ベル) |
7 |
\b |
バックスペース |
8 |
\f |
フォームフィード |
12 |
\n |
改行 |
10 |
\r |
復帰 |
13 |
\t |
水平タブ |
9 |
\v |
垂直タブ |
11 |
\\ |
バックスラッシュ |
92 |
\' |
シングルクォート |
39 |
\" |
ダブルクォート |
34 |
\0 |
ヌル文字 |
0 |
\ooo |
8進数値 |
— |
\xhh |
16進数値 |
— |
演算子優先順位表
最も高い優先順位から低い順に記載します。同じ行の演算子は同じ優先順位です:
| 優先順位 |
演算子 |
結合性 |
説明 |
| 1 |
() [] -> . ++(後置) --(後置) |
左→右 |
後置 |
| 2 |
++(前置) --(前置) + - ! ~ *(間接) &(アドレス) sizeof (型) |
右→左 |
単項 |
| 3 |
* / % |
左→右 |
乗算 |
| 4 |
+ - |
左→右 |
加算 |
| 5 |
<< >> |
左→右 |
シフト |
| 6 |
< <= > >= |
左→右 |
関係 |
| 7 |
== != |
左→右 |
等価 |
| 8 |
& |
左→右 |
ビットAND |
| 9 |
^ |
左→右 |
ビットXOR |
| 10 |
| |
左→右 |
ビットOR |
| 11 |
&& |
左→右 |
論理AND |
| 12 |
|| |
左→右 |
論理OR |
| 13 |
?: |
右→左 |
条件 |
| 14 |
= += -= *= /= %= &= ^= |= <<= >>= |
右→左 |
代入 |
| 15 |
, |
左→右 |
カンマ |
💡 ヒント: 覚え方:単項→乗算→加算→シフト→関係→等価→ビットAND→XOR→ビットOR→論理AND→論理OR→条件→代入→カンマ
主要ヘッダファイル関数リファレンス
stdio.h
| 関数 |
目的 |
printf |
stdoutへのフォーマット出力 |
fprintf |
ファイルへのフォーマット出力 |
sprintf |
文字列へのフォーマット出力 |
snprintf |
文字列へのフォーマット出力(安全) |
scanf |
stdinからのフォーマット読み取り |
fscanf |
ファイルからのフォーマット読み取り |
sscanf |
文字列からのフォーマット読み取り |
fopen |
ファイルを開く |
fclose |
ファイルを閉じる |
fgetc |
1文字読み取り |
fputc |
1文字書き込み |
fgets |
1行読み取り |
fputs |
文字列書き込み |
fread |
バイナリ読み取り |
fwrite |
バイナリ書き込み |
fseek |
ファイル位置の設定 |
ftell |
ファイル位置の取得 |
rewind |
ファイル位置を先頭に戻す |
feof |
ファイル終端の確認 |
ferror |
ファイルエラーの確認 |
fflush |
バッファのフラッシュ |
remove |
ファイルの削除 |
rename |
ファイルの名前変更 |
tmpfile |
一時ファイルの作成 |
perror |
エラーメッセージの出力 |
stdlib.h
| 関数 |
目的 |
malloc |
動的メモリ確保 |
calloc |
メモリ確保とゼロ初期化 |
realloc |
メモリの再確保 |
free |
メモリの解放 |
atoi |
文字列をintに変換 |
atol |
文字列をlongに変換 |
atof |
文字列をdoubleに変換 |
strtol |
文字列をlongに変換(安全) |
strtod |
文字列をdoubleに変換(安全) |
rand |
乱数の生成 |
srand |
乱数シードの設定 |
qsort |
クイックソート |
bsearch |
二分探索 |
abs |
整数の絶対値 |
labs |
longの絶対値 |
exit |
プログラムの終了 |
atexit |
終了時関数の登録 |
system |
システムコマンドの実行 |
getenv |
環境変数の取得 |
string.h
| 関数 |
目的 |
strcpy |
文字列のコピー |
strncpy |
文字列のコピー(安全) |
strcat |
文字列の連結 |
strncat |
文字列の連結(安全) |
strcmp |
文字列の比較 |
strncmp |
文字列の比較(長さ指定) |
strlen |
文字列の長さ |
strchr |
文字の検索(左から) |
strrchr |
文字の検索(右から) |
strstr |
部分文字列の検索 |
strtok |
文字列のトークン分割 |
memcpy |
メモリのコピー |
memmove |
メモリの移動(重複許可) |
memset |
メモリの埋め込み |
memcmp |
メモリの比較 |
math.h
| 関数 |
目的 |
fabs |
浮動小数点の絶対値 |
sqrt |
平方根 |
pow |
累乗 |
ceil |
切り上げ |
floor |
切り捨て |
round |
四捨五入 |
fmod |
浮動小数点剰余 |
log |
自然対数 |
log10 |
常用対数 |
sin |
正弦 |
cos |
余弦 |
tan |
正接 |
asin |
反正弦 |
acos |
反余弦 |
atan |
反正接 |
atan2 |
反正接(2引数) |
ctype.h
| 関数 |
目的 |
isalpha |
アルファベットか |
isdigit |
数字か |
isalnum |
アルファベットまたは数字か |
isupper |
大文字か |
islower |
小文字か |
isspace |
空白文字か |
ispunct |
句読点か |
isprint |
印字可能文字か |
toupper |
大文字に変換 |
tolower |
小文字に変換 |
time.h
| 関数/マクロ |
目的 |
time |
現在時刻の取得 |
clock |
CPUクロックティックの取得 |
localtime |
ローカル時刻に変換 |
gmtime |
UTC時刻に変換 |
strftime |
時刻のフォーマット |
difftime |
時間差の計算 |
mktime |
tmをtime_tに変換 |
CLOCKS_PER_SEC |
1秒あたりのクロックティック数 |
assert.h
| 関数/マクロ |
目的 |
assert(expr) |
アサーション、失敗時に終了 |
NDEBUG |
定義時にassertを無効化 |
errno.h
| シンボル |
目的 |
errno |
グローバルエラーコード変数 |
EDOM |
定義域エラー |
ERANGE |
範囲エラー |
データ型の範囲早見表
| 型 |
サイズ(バイト) |
最小値 |
最大値 |
char |
1 |
-128 |
127または0/255 |
signed char |
1 |
-128 |
127 |
unsigned char |
1 |
0 |
255 |
short |
2 |
-32768 |
32767 |
unsigned short |
2 |
0 |
65535 |
int |
4 |
-2147483648 |
2147483647 |
unsigned int |
4 |
0 |
4294967295 |
long |
4/8 |
プラットフォーム依存 |
プラットフォーム依存 |
unsigned long |
4/8 |
0 |
プラットフォーム依存 |
long long |
8 |
-9223372036854775808 |
9223372036854775807 |
float |
4 |
約1.2e-38 |
約3.4e+38 |
double |
8 |
約2.2e-308 |
約1.8e+308 |