間違ってるとことかあったら、教えてください。
基本データ型
関数や変数などを定義する際は、すべてデータ型を指定する必要がある。
既存の関数もすべてデータ型が指定されている。
データ型は大まかには、論理型、整数型、浮動小数点型、文字型などに分類される。
論理型
bool
二者択一の表現をする論理型。boolean type
定数として、true,falseが使える。
前者は値1(真)に相当。後者は値0(偽)に相当。
整数型/文字型
int
整数を表現する型。整数型。integer type
表現範囲はマシン環境に依存。
long int
longと略記できる。32ビット環境ではlong型変数を使う場面は多くない。
なので、そんなに重要じゃない?
char
ASCII文字ひとつを表現できる型。文字型。(整数型)
特別に文字を扱うための便利な機能を持っているわけではない。
int型と機能上は同じ性質を持つ。表現する範囲が異なっているだけ。
文字列の最後には文字コード0が置かれる。
unsigned
整数型の変数の頭に"unsigned"を付けることで、
表現範囲の符号をなくす。
つまり、負の数の表現ができなくなるが、
正の数の表現範囲が倍に増えるということ。
unsigned char/unsigned intなど
浮動小数点型
float,double
小数の表現が可能な型
floatは7桁までの小数に有効。
doubleは15桁までの小数に有効。
*****
string
文字列処理のできる型。
基本データ型ではなくユーザー定義型ということに注意のようだ。
*****
その他の型
ビギナー編には載ってないので後々理解していけばいいのかな?
これより下は後回しで!
***
列挙型
列挙型は、表意的な文字を整数値で表す特殊な型です。enum キーワードを使って宣言し、要素(定数)は{}で囲んで定義します。
書式: enum 型名 { 要素リスト } 変数1, 変数2, ... ;
enum primarycolor {red, green, blue} ; // 宣言の基本形
enum primarycolor {red, green, blue} pricolor1; // 宣言と同時に変数を宣言
enum {red, green, blue} procolor1, pricolor2; // 列挙体名を省略
上記の様にすると、最初の要素から順に、0( = red), 1( = green), 2( = blue) の整数値が当てられます。
*****
複合型
複数のデータ型を持った特殊なデータ型も利用できます。これには、構造体、共用体などがあります。構造体は struct 、共用体は union を使って宣言します。なお、これらの内容については 別章「構造体篇」を参照してください。
// 構造体
/* 複数のデータ型のデータを
一つのデータとしてまとめる */
struct Member {
int id ;
char name[64] ;
} ;
// 共用体
/* 同じメモリ領域にあるデータを
別のデータ型として認識させる */
union MojiData {
char moji[4] ;
int numeric ;
} ;
また、クラスを使うとより応用範囲が広がります。変数や定数、関数など、データ型や異なるスコープの様々なデータを一箇所に集めて処理することができます。なお、この内容については別章「クラス篇」を参照してください。
// クラス : 様々なデータや関数をひとまとめにする
class Card {
char name[10] ; // 変数
int figure ; // 変数
void setprop() ; // 関数
} ;
******
typedef
typedef キーワードを使って新しい型を定義することができます。
下記の例では、unsigned char 型の uchar 型を定義しています。
以降、uchar 型として変数や関数を定義することが可能になります。
書式: typedef データ型 型名 ;
typedef unsigned char uchar ; // uchar型の作成
構造体なども同様に新しい型として定義することができます。
struct tagPoint {
int X;
int Y;
} ;
typedef struct tagPoint Point ; // Point型の作成