| 型 | サイズ | 設定できる値の範囲 | 備考 | |
| 整数 | 符号あり | |||
| char | 1 | -128 ~ 127(コンパイラによっては 0 ~ 255) | ||
| short | 2 | -32768 ~ 32767 | ||
| long | 4 | -2147483648 ~ 2147483647 | ||
| int | 4 | -2147483648 ~ 2147483647 | 32 bit CPU の場合。 | |
| longlong | 8 | -9223372036854775808 ~ 9223372036854775807 | 64 bit CPU の場合に使用可。 | |
| 符号なし | ||||
| unsigned char | 1 | 0 ~ 255 | ||
| unsigned short | 2 | 0 ~ 65535 | ||
| unsigned long | 4 | 0 ~ 4294967295 | ||
| unsigned int | 4 | 0 ~ 4294967295 | 32 bit CPU の場合。 | |
| unsigned longlong | 8 | 0 ~ 18446744073709551615 | 64 bit CPU の場合に使用可。 | |
| 実数 | 浮動小数点数 | |||
| float | 4 | |||
| double | 8 | |||
| long double | 8 | |||
| ※サイズの単位はバイト。C 言語の規格において具体的なバイトは定義されておらず、 char ≦ short ≦ long ≦ longlong という関係性のみ定義されている。(int においては CPU が得意とするサイズだったはず) ※char, short, long, int, longlong のそれぞれの前に signed を付け「符号あり」を明示することもできる。 |
||||
| A + B | 加算 | A に B を加えた値を求める。 |
| A - B | 減算 | A から B を引いた値を求める。 |
| A * B | 乗算 | A に B を掛けた値を求める。 |
| A / B | 除算 | A を B で割った値を求める。 |
| A % B | A を B で割ったときの余りを求める。 |
| A & B | AND | (1 と 1 の時のみ 1) 0 : 0 → 1 0 : 1 → 0 1 : 0 → 0 1 : 1 → 1 |
| A | B | OR | (1 があれば 1) 0 : 0 → 0 0 : 1 → 1 1 : 0 → 1 1 : 1 → 1 |
| A ^ B | XOR | (B が 1 なら A を反転) 0 : 0 → 0 0 : 1 → 1 1 : 0 → 1 1 : 1 → 0 |
| ~A | NOT | ビット反転 |
| !A | Aが 0 の時は 1 、A が 0 以外の時 0 | |
| A << B | 右シフト | |
| A >> B | 左シフト |
| A += B | 加算 | A に B を加えた値を A に代入。 |
| A -= B | 減算 | A から B を引いた値を A に代入。 |
| A *= B | 乗算 | A に B を掛け値を A に代入。 |
| A /= B | 除算 | A を B で割った値を A に代入。 |
| A %= B | A を B で割ったときの余りを A に代入。 | |
| A <<= B | ||
| A >>= B |
| A == B | A と B が等しいか判定。 | ||
| A != B | A と B が等しくないか判定。 | ||
| A > B | A が B より大きいか判定。 | ||
| A < B | A が B より小さい判定。 | ||
| A >= B | A が B 以上(大きいまたは等しい)か判定。 | ||
| A <= B | A が B 以下(小さいまたは等しい)か判定。 | ||
| 条件を 2 以上にする時(&& または ||) | A >= 2 && A <= 8 | A が 2 以上、且つ A が 8 以下か判定。 | |
| A == 2 || A == 4 | A が 2 と等しい、または A が 4 と等しいか判定。 | ||
| ※条件を満たす場合 1(真)、条件を満たさない場合は 0(偽) | |||
| strlen | 文字列のバイト数。
char szName[] = { "Mike" };
int nNemeLength = strlen( szName );
printf_s( "nNemeLength = %d\n", nNemeLength );
|
| strcpy_s | 文字列の代入。
char szName[] = { "Mike" };
char szBuffer[64];
strcpy_s( szBuffer, _countof(szBuffer), szName );
printf_s( "szBuffer[] = %s\n", szBuffer );
|
| strcat_s | 文字列の追加結合。
char szName[] = { "Mike" };
char szFamily[] = { "Gates" };
char szBuffer[64];
strcpy_s( szBuffer, _countof(szBuffer), szName );
strcat_s( szBuffer, _countof(szBuffer), szFamily );
printf_s( "szBuffer[] = %s\n", szBuffer );
|
| strcmp | 文字列の比較。
int nCompare1 = strcmp( "Z", "A" );
printf_s( "nCompare1 = %d\n", nCompare1 );
int nCompare2 = strcmp( "A", "Z" );
printf_s( "nCompare2 = %d\n", nCompare2 );
int nCompare3 = strcmp( "A", "A" );
printf_s( "nCompare3 = %d\n", nCompare3 );
int nCompare4 = strcmp( "A", "a" );
printf_s( "nCompare4 = %d\n", nCompare4 ); ※第 1 引数を基準して大きければ 0 より大きく、小さければ 0 より小さく、等しければ 0 を返す。
|
| stricmp | 文字列の比較(半角アルファベットの大文字と小文字を区別しない)。 int nCompare = stricmp( "A", "a" );
printf_s( "nCompare = %d\n", nCompare ); |
| printf_s | 書式指定した文字列を作成し、文字列を標準出力へ出力。 printf_s( "%s is %d years old.\n", "Mike", 10 );
|
| sprintf_s | 書式指定した文字列を作成し、文字列を変数へ代入。 char szBuffer[128];
int a = 16;
sprintf_s( szBuffer, _countof(szBuffer), "10進数の %d → 16進数では %x", a, a );
printf_s( szBuffer );
|
| strtol | 文字列を整数(long型)に変換。 char szNumber1[] = { "128" };
char szNumber2[] = { "10" };
int a = 0;
a = strtol( szNumber1, NULL, 10 );
printf_s( "数値 1 = %d\n", a );
a = strtol( szNumber2, NULL, 16 );
printf_s( "数値 2 = %d\n", a );
|
| %d | 整数を表示。 |
| %x | 整数を16進数表示。 |
| %f | 実数を表示。 |
| %s | 文字列を表示。 |
| %p | アドレスを表示。 |