戻る

文字・リテラル

目次


文字・リテラル

エスケープシーケンス
文字列コード略号機能名称
\a07BEL内臓ベルを鳴らすalert
\b08BSバックスペースback space
\f0CFF改ページform feed
\n0ALF改行new line
\r0DCR復帰carriage return
\t09HT水平タブhorizontal tab
\v0BVT垂直タブvertical tab
\\5C\マーク
\'27'マーク
\"22"マーク
\?3F?マーク
\ooo8進数octal
\xhh16進数hexadecimal
\000文字列表記のゼロ

整数の表現例
8進数0で始まり0~7の数字で構成033
10進数0以外で始まり0~9の数字で構成123
16進数0xまたは0Xで始まり0~9,A~Fで構成0x1a
unsigned型定数uまたはUを末尾につける12300u
long型定数lまたはLを末尾につける6767l

演算子の優先順位
優先順位演算子結合
1()(関数呼び出し) [] . -> ++(後置) --(後置) 左
2++(前置) --(前置) +(単項) -(単項) ~ &(単項) *(単項) ! sizeof 右
3()(キャスト) 右
4*(二項) / % 左
5+(二項) -(二項) 左
6<< >> 左
7< <= > >= 左
8== != 左
9&(二項) 左
10^ 左
11| 左
12&& 左
13|| 左
14?: 右
15= += -= *= /= %= <<= >>= &= ^= |= 右
16, 左

演算子
算術演算子
+
-
*
/
%
関係演算子
<
<=
>
>=
等価演算子
==
!=
論理演算子
!
&&
||
インクリメント、デクリメント
x++
++x
x--
--x
代入演算子
=
+=
-=
*=
/=
%=
&=
|=
<<=左シフト代入
>>=右シフト代入
キャスト演算子
条件演算子
(条件式)?式1:式2条件式がtrueの時式1、falseの時式2を採用
ビット演算子
&論理積
|論理和
^排他的論理和
~ビット反転
<<ビットシフト左
>>ビットシフト右
sizeof演算子
sizeof 単項式
sizeof(データ型)バイト単位で計算。
ポインタ演算
&アドレスを取得
*アドレスの値を取得

データ型
データ型(Asemble's)バイト幅表現範囲printf()の変換指定構造
char(char)1byte-128~127%d,%c
signed char1byte-128~127%d,%c
unsigned char1byte0~255%d,%c
int(dword)4byte-2147483648~2147483647%d
unsigned int4byte0~4294967295%u
short(word)2byte-32768~32767%d
unsigned short2byte0~65535%u
long4byte-2147483648~2147483647%ld
unsigned long4byte0~4294967295%lu
float4byte10^-37~10^38%f
  • 先頭1bit:符号ビット(0固定)
  • 2~9bit(8bit):指数部
  • 10~32bit(23bit):仮数部
unsigned float4byte
  • 先頭1bit:符号ビット(1:負/0:正)
  • 2~9bit(8bit):指数部
  • 10~32bit(23bit):仮数部
double8byte10^-307~10^308%f
long double8byte%Lf
ポインタ(qword)8byte
void*環境依存32bit=4byte/64bit=8byte

前処理命令
#include指定したファイルを挿入
#defineマクロ定義(定数定義)
#undefマクロ定義を取り消す
#if #ifdef #ifndef条件付きコンパイルをする
#elif #else #endif条件付きコンパイルをする
defined#if #elifの中で判定処理に用いる単項演算子
#pragma行番号の付け替えを行う
#error前処理時のエラー表示を行う
##define中:仮引数の文字列化単独使用:空命令
##字句の連結を行う
トップへ戻る

ソート法
バブルソート(基本交換法、隣接交換法)隣り合ったデータ同士の比較と入れ替えを繰り返す。
選択ソート(基本選択法)最大最小値を選択し、先頭から順に比較と入れ替えを繰り返す
挿入ソート(基本挿入法)未整列データの先頭を別配列として固定し、その後の未整列データからデータを取り固定されたデータと比較、入れ替えする。このサイクルを繰り返す。
シェルソート(改良挿入法)一定の間隔をあけた要素同士で挿入ソートを行い、その間隔を1つ狭め挿入ソートを繰り返す
クイックソートピポットという基準値を決めそれよりも大きい数と小さい数に分けその中でさらに基準値を決め大きい数と小さい数に分ける。これを繰り返す。
ヒープソートヒープを作成し整列する。根に最大もしくは最小値が来る特性を利用し、根を取り出し、ヒープの再構成を行う。これを繰り返す
マージソート要素を分割し少なくなった要素同士で並べ替えと併合を繰り返し元の配列に戻す方法

アドレス指定方式
即値アドレス方式オペランド部に操作対象の値を直接指定する
直接アドレス方式オペランド部に実行アドレスを指定する
間接アドレス方式実行アドレスを格納したアドレスをオペランド部に指定する方式
相対アドレス方式オペランド部の値とプログラムカウンタを加算した値を実行アドレスとする方式
指標(インデックス)アドレス方式オペランド部とインデックスレジスタの値を加算した結果を実行アドレスとする方式
規定(ベース)アドレス方式オペランド部とベースレジスタの値を加算した結果を実行アドレスとする方式
トップへ戻る