記号の一覧 | Programming Place Plus C言語編

トップページC言語編

C言語のソースコードに現れるさまざまな記号が、どういう意味であるのかを一覧できるようにしました。

C++ の記号の一覧がこちらのページにあります。

記号の一覧

記号 使用例 意味 詳細な解説へのリンク
+ a = b + c; 加算(足し算) 第2章
+ a = +10; 符号。特に効果はない 第2章
+= a += 10; 変数に対して加算(足し算)を行い、結果をその変数に代入する 第7章
++ ++a;
a++;
変数の値に +1 する。変数名の手前に置くのと、後ろに置くのとでは動作に違いがある。 第12章
- a = b - c; 減算(引き算) 第2章
- a = -10; 符号を反転させる 第2章
-= a -= 10; 変数に対して減算(引き算)を行い、結果をその変数に代入する 第7章
--a;
a--;
変数の値に -1 する。変数名の手前に置くのと、後ろに置くのとでは動作に違いがある。 第12章
-> p->n = 10; 構造体を指すポインタを経由して、メンバを参照する 第37章
* int* p; ポインタ型であることを表す 第31章
* *p = 10;
int n = *p;
ポインタが指し示す先にある値を参照する 第31章
** **pp = 10; 上記の * による間接参照を繰り返している。3個以上並んでいる場合も同様 第36章
* a = b * c; 乗算(掛け算) 第3章
*= a *= 3; 変数に対して乗算(掛け算)を行い、結果をその変数に代入する 第7章
*/ /* 注釈 */ コメントの終了 第5章
/ a = b / c; 除算(割り算) 第3章
/= a /= 10; 変数に対して除算(割り算)を行い、結果をその変数に代入する 第7章
/* /* 注釈 */ コメントの開始 第5章
// // 注釈 コメントの開始。行末までがコメント 第5章
% a = b % 2; 剰余(割り算の余り)を求める 第3章
%= a %= 2; 変数に対して剰余を求めて、結果をその変数に代入する 第7章
& &a; メモリアドレスを取得する 第31章
& a = b & 0x01; ビット積 (AND) 第49章
&= a &= 0x01; 変数に対してビット積 (AND) を取り、結果をその変数に代入する 第49章
&& if (a && b) 論理積(AND) 第15章
| a = b | 0x01; ビット和 (OR) 第49章
|= a |= 0x01; 変数に対してビット和 (OR) を取り、結果をその変数に代入する 第49章
|| if (a || b) 論理和(OR) 第15章
^ a = b ^ 0x01; 排他的ビット和 (XOR) 第49章
^= a ^= 0x01; 変数に対して排他的ビット和 (XOR) を取り、結果をその変数に代入する 第49章
~ a = ~b; ビット否定 (NOT) 第49章
< #include <stdio.h> インクルードするヘッダの名前を囲む括弧の開始 第24章
< if (a < 0) 左側の値のほうが、右側の値より小さい 第13章
<= if (a <= 0) 左側の値が、右側の値以下 第13章
<< a = b << 1; ビット列を左方向(上位の桁)へずらす 第49章
<<= a <<= 1; 変数に対してビット列を左方向(上位の桁)へずらす操作を行い、結果をその変数に代入する 第49章
> #include <stdio.h> インクルードするヘッダの名前を囲む括弧の終わり 第24章
> if (a > 0) 左側の値のほうが、右側の値より大きい 第13章
>= if (a >= 0) 左側の値が、右側の値以上 第13章
>> a = b >> 1; ビット列を右方向(下位の桁)へずらす 第49章
>>= a >>= 1; 変数に対してビット列を右方向(下位の桁)へずらす操作を行い、結果をその変数に代入する 第49章
! a = !b;
if (!x)
真と偽を反転する 第15章
!= if (a != b) 左側の値と、右側の値が異なる 第13章
= a = 10; 右側の値を、左側の変数に代入する 第7章
= int a = 10; 変数宣言時に初期値を与える 第7章
== if (a == 0) 左側の値と、右側の値が同じ 第13章
# # 空のプリプロセッサ指令 第23章
# #define XYZ "XYZ" など、# とそれに続くアルファベットの並びの組み合わせ 各種のプリプロセッサ指令 #define –> 第23章第28章
#if、#endif、#ifdef、#ifndef、#else、#elif –> 第23章
#include –> 第23章
#error –> 第23章
#line –> 第29章
#pragma –> 第29章
#undef –> 第23章
# #define LOG_INT(var) printf(#var ": %d\n", var)
(※冒頭の # ではなく、途中に現れるもの)
関数形式マクロの実引数を、文字列リテラルに置換する 第28章
## #define CAT(first,second) first ## second マクロの置換結果の中で、2つの字句を連結する 第28章
c = 'x'; 2つをペアで使って、文字の定数を表現する 第8章
" const char* s = "xyz"; 2つをペアで使って、文字列リテラルを表現する 第1章
() void f(int a); 関数の仮引数 第9章
() f();
f(1, 2, 3);
関数を呼び出す。実引数があるなら () の内側に , で区切って書く 第9章
() int n = (int)f; 型を明示的に変換する(キャスト 第21章
() a = (b + c) / 2; 計算の優先順位を強制する 第3章
() if (a == 0)
while (a == 0)
void f(int n); など
条件式や仮引数を記述するなど、構文上のルールとして if –> 第14章
switch –> 第11章
while –> 第16章
for –> 第12章
do –> 第16章
関数の宣言・定義 –> 第9章
複合リテラル –> 第26章
[] int a[] = {0, 1, 2};
int a[3] = {0, 1, 2};
配列の要素数の指定 第25章
[] a[1] = 10; 配列の要素を参照する際に、添字を指定する 第25章
{} int a[] = {0, 1, 2};
struct Data data = {0, 1, 2};
配列や構造体などの集成体型を初期化するときに、初期値の並びを囲む 配列 –> 第25章
構造体 –> 第26章
共用体 –> 第55章
{} int* a = (int[]){0, 1, 2};
struct Data data = (struct Data){0, 1, 2};
複合リテラル 配列 –> 第32章
構造体 –> 第26章
{}
if (p) {
    printf("%d\n", *p);
}


while (*p) {
    ++p;
}


void f(void) {
}
ブロックを構築する 第22章
, for (i = 0, j = 0; i < 10; ++i, ++j)
int a, b, c;
式を連結する 第27章
第27章
, int array[] = {0, 1, 2};
struct Data data = {0, 1, 2};
要素の区切り 配列 –> 第25章
構造体 –> 第26章
. 0.123 小数点
. s.n = 10; 構造体のメンバを参照する 第26章
. struct Data data = {.n = 10}; 構造体の初期化時に、対象のメンバを指定する 第26章
void f(int n, ...); 引数の個数や型が可変であることを表す 第52章
: case 0:
default:
error:
ラベルの記述。switch や goto とともに使用され、処理の飛び先を表す switch –> 第11章
goto –> 第17章
: a = (p == NULL) ? 0 : *p; 条件演算子に与えるオペランドの区切り 第14章
; int a = 0;
a = 0;
for (int a = 0; a < 10; ++a)
文の終わり 第1章
for の場合 –> 第15章
? a = (p == NULL) ? 0 : *p; 条件演算子に与えるオペランドの区切り 第14章
\
#define INITIALIZE(a,b,c)  \
    (a) = 0; \
    (b) = 0; \
    (c) = 0;
マクロ定義内で改行を行う 第28章
\ char* s = "abc\n"; など、「\」に1文字が続く 特殊な意味をもった文字を表現する 第8章
_ printf("%d\n", __LINE__);
_Bool b = 0;
int _x;
特に意味のない普通の文字。
たとえば、__LINE__ はそのような名前のマクロ、_Bool はそのような名前の型、_x はそのような名前の変数に過ぎない。

参考リンク


更新履歴

’2019/10/8 新規作成。



C言語編のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る