C言語で使用するものを一覧で随時更新していきます。
記号 | 意味 |
---|---|
\n | 改行(現在の印字位置を次の先頭位置に移動) |
\t | タブ(次の水平タブに移動) |
\b | バックスペース(現在の行で前に移動) |
\r | キャリッジリターン(現在の行の最初の位置に移動) |
\f | ページフィード(次の論理ページの最初に移動) |
\’ | シングルクォーテーション(一重引用符) |
\” | ダブルクォーテーション(二重引用符) |
\0 | ヌル文字(null)空文字 |
\\ | 円記号(\) |
\? | クエスチョンマーク(?) |
\a | ベル音 |
\xhh | 16進拡張(16進でhhのコードを持つ文字) |
\ooo | 8進拡張(8進でoooのコードを持つ文字) |
auto | break | case | char | const | continue | default | do |
double | else | enum | exterrn | float | for | goto | if |
int | long | register | return | short | signed | sizeof | static |
struct | switch | typedef | union | unsigned | void | volatile | while |
・演算子は優先順位の高いものから評価されます。
・優先度が同じなら結合規則で評価順が決まります。
同じ優先度の演算子が並ぶときは結合規則で決まります。
結合規則は「左から右」「右から左」のどちらに結合させるかです。
結合規則 例1) x = 48 / 8 / 2; ・・・ 「左から右」の除算演算子
左と結合するので x = ( 48 / 8 ) / 2; と同じ。 x = 48 / ( 8 / 2 ); の計算とは結果が違います。
結合規則 例2) x = y = 0; ・・・ 「右から左」の代入演算子
x = ( y = 0 ); と同じ。 y に 0 を代入しそれを x にも代入するので x も y も 0 となります。
・優先度が同じなら結合規則で評価順が決まります。
同じ優先度の演算子が並ぶときは結合規則で決まります。
結合規則は「左から右」「右から左」のどちらに結合させるかです。
結合規則 例1) x = 48 / 8 / 2; ・・・ 「左から右」の除算演算子
左と結合するので x = ( 48 / 8 ) / 2; と同じ。 x = 48 / ( 8 / 2 ); の計算とは結果が違います。
結合規則 例2) x = y = 0; ・・・ 「右から左」の代入演算子
x = ( y = 0 ); と同じ。 y に 0 を代入しそれを x にも代入するので x も y も 0 となります。
優先順位 | 記号 | 説明 | 結合規則 |
---|---|---|---|
() | 関数の呼び出し(print(…)main()等 | ||
[] | 配列 | ||
1 | -> | 構造体メンバ参照 | 左から右 |
. | 構造体メンバ参照 | ||
++ | 後置増分 | ||
— | 後置減分 | ||
++ | 前置増分 | ||
— | 前置減分 | ||
sizeof | 記憶量 | ||
& | アドレス | ||
2 | * | 間接参照 | 右から左 |
+ | 正符号 | ||
– | 負符号 | ||
~ | 補数(ビット反転) | ||
! | 否定 | ||
3 | () | キャスト | 右から左 |
* | 乗算 | ||
4 | / | 除算 | 左から右 |
% | 除余 | ||
5 | + | 加算 | 左から右 |
– | 減算 | ||
6 | << | 左シフト | 左から右 |
>> | 右シフト | ||
< | 左不等号(大きい) | ||
7 | <= | 等価左不等号(以上) | 左から右 |
> | 右不等号(小さい) | ||
>= | 等価右不等号(以下) | ||
8 | == | 等価 | 左から右 |
!= | 非等価 | ||
9 | & | ビット値 | 左から右 |
10 | ^ | ビット積 | 左から右 |
11 | | | ビット和 | 左から右 |
12 | && | 論理積 | 左から右 |
13 | || | 論理和 | 左から右 |
14 | ?: | 条件。a?b:cのように使う | 右から左 |
= | 代入 | ||
+= | 加算代入 | ||
-= | 減算代入 | ||
*= | 乗算代入 | ||
/= | 除算代入 | ||
15 | %= | 剰余代入 | 右から左 |
<<= | 左シフト代入 | ||
>>= | 右シフト代入 | ||
&= | ビット積代入 | ||
^= | ビット差代入 | ||
|= | ビット和代入 | ||
16 | , | コンマ演算子 | 左から右 |
単項演算子→アドレス演算子「&v」
2項演算子→ビット毎の論理積「x&y」
C言語での記憶クラス指定子のひとつで宣言したオブジェクトに静的な記憶クラスを与えるもので、ヘッダファイル内には書かない。
stticの意味は、static指定されたグローバル変数や関数のスコープをそのソースファイル内に限定させるということです。
ヘッダファィルにstatic変数を記途するとインクルードされたソースごとに別々の変数が作成されるのでNG!!
指定子 | 意味 |
---|---|
auto | オブジェクトに自動記憶クラスを与える。関数内でのみ使用可。 |
register | 変数の使用頻度が高いことをコンパイラに知らせる。他はautoと同じ。 |
static | オブジェクトに静的な記憶クラスを与える。関数の中でも外でも使用可。 |
extern | オブジェクト用のメモリが他のどこかで定義されていることを示す。 |
typedef | 型に別名を付ける。構文の便宜上記憶クラス指定子に分類されている。 |