アフィリエイト広告を利用しています
C++の代表的なデータ型
- 整数型(int): 整数を格納するためのデータ型です。サイズはプラットフォームやコンパイラに依存しますが、通常は32ビット(4バイト)です。
- 浮動小数点型(float、double): 小数を格納するためのデータ型です。floatは通常32ビット(4バイト)、doubleは64ビット(8バイト)です。doubleはfloatよりも精度が高いです。
- 文字型(char): 1文字を格納するためのデータ型で、通常は8ビット(1バイト)です。
- ブーリアン型(bool): 真(true)または偽(false)のみを格納するためのデータ型です。
- void型: 値を持たない型で、特に関数が何も返さないことを示すのに使われます。
- 配列: 同じ型のデータを複数持つことができるデータ構造です。
- ポインタ: メモリのアドレスを保持するためのデータ型です。
- 構造体(struct): 複数の異なる型のデータを一つの型としてまとめることができます。
- クラス(class): データとそれを操作する関数(メソッド)を一つにまとめたものです。C++の主要な特徴であるオブジェクト指向プログラミングを実現します。
- 列挙型(enum): 予め定義された数値の集合を表す型で、読みやすく保守性の高いコードを書くのに役立ちます。
これらはC++でよく使われる基本的なデータ型の一部ですが、その他にも標準テンプレートライブラリ(STL)にはvectorやlist、mapなどの高度なデータ構造も提供されています。
Visual C++の特有のデータ型
BOOL: Windows APIでは、ブール値はBOOL型で表されます。これはintのtypedefであり、通常TRUE(非ゼロ)またはFALSE(ゼロ)のいずれかの値を取ります。BYTE: これは1バイトのunsigned integerを表す型で、0から255までの値を取ります。WORD: これは2バイトのunsigned integerを表し、0から65,535までの値を取ります。DWORD: これは4バイトのunsigned integerを表し、0から4,294,967,295までの値を取ります。WCHAR: これはワイド文字を表す型で、2バイトのUnicode文字を表します。LPSTRとLPCSTR: これらは文字列を表す型で、それぞれchar*とconst char*のtypedefです。LPWSTRとLPCWSTR:LPSTRとLPCSTRと同様に、これらは文字列を表す型ですが、こちらはwchar_t*とconst wchar_t*のtypedefです。
演算子
1. 算術演算子
算術演算子は数値の計算に使用されます。
+: 足し算-: 引き算*: 掛け算/: 割り算%: 剰余
2. 比較演算子
比較演算子は、値の比較に使用されます。
==: 等しい!=: 等しくない<: より小さい>: より大きい<=: 以下>=: 以上
3. 論理演算子
論理演算子は、真偽値の操作に使用されます。
&&: 論理 AND||: 論理 OR!: 論理 NOT
4. 代入演算子
代入演算子は、変数への値の代入に使用されます。
=: 代入+=: 加算後の代入-=: 減算後の代入*=: 乗算後の代入/=: 除算後の代入%=: 剰余後の代入
5. 単項演算子
単項演算子は、1つのオペランドで動作します。
+: 正の値-: 負の値++: インクリメント--: デクリメント
6. ビット演算子
ビット演算子は、整数のビットで操作します。
&: ビット AND|: ビット OR^: ビット XOR~: ビット NOT<<: 左シフト>>: 右シフト
7. その他の演算子
.: メンバーへのアクセス->: ポインタを通じたメンバーへのアクセス[]: 配列の要素へのアクセス&: アドレス演算子*: ポインタ演算子?:: 三項演算子,: コンマ演算子sizeof: サイズ取得演算子typeid: 型情報演算子dynamic_cast: 型変換演算子
条件
1. if 文
if 文は、特定の条件が真である場合に、コードブロックを実行します。
if (condition) { // コードを実行する }2. if-else 文
if-else 文は、条件が真の場合には一つのコードブロックを実行し、偽の場合には別のコードブロックを実行します。
if (condition) { // 条件が真の場合に実行するコード } else { // 条件が偽の場合に実行するコード }3. if-else if-else 文
if-else if-else 文は、複数の条件をチェックするために使用されます。
if (condition1) { // condition1 が真の場合に実行するコード } else if (condition2) { // condition2 が真の場合に実行するコード } else { // どの条件も偽の場合に実行するコード }4. switch 文
switch 文は、変数の値に基づいて複数のケースのうちの一つを選択して実行します。
switch (expression) { case value1: // expression が value1 に等しい場合に実行するコード break; case value2: // expression が value2 に等しい場合に実行するコード break; // 他のケース default: // どのケースも一致しない場合に実行するコード }break 文は、一致するケースのコードが実行された後、switch ブロックから抜け出すために使用されます。break がない場合、次のケースのコードも実行されます(フォールスルー)。
5. 三項演算子
三項演算子 ?: は、単純な if-else 文をコンパクトに表現するために使用されます。
result = (condition) ? value_if_true : value_if_false;1. for ループ
for ループは、指定された回数の反復を実行するために使用されます。基本的な構文は以下の通りです。
for (初期化; 条件; 更新) { // 反復処理のコード }
- 初期化: ループ変数の初期化。最初に一度だけ実行されます。
- 条件: 各反復の前に評価される条件。真の場合、ループは続行します。
- 更新: 各反復の後に実行される式。通常はループ変数のインクリメントやデクリメントです。
2. while ループ
while ループは、指定された条件が真である限り反復を続けます。
while (条件) { // 反復処理のコード }3. do-while ループ
do-while ループは、while ループと似ていますが、条件がループの最後で評価されるため、少なくとも一回は反復処理が実行されます。
do { // 反復処理のコード } while (条件);4. Range-based for ループ (C++11 以降)
C++11 以降では、コンテナや配列の各要素を反復処理するための簡潔な構文が導入されました。
for (型 変数名 : コンテナ) { // 反復処理のコード }5. ループ制御文
ループ内で使用できる制御文には以下のものがあります。
- break: ループを中断し、ループの後のコードの実行に移ります。
- continue: 現在の反復を中断し、ループの次の反復に移ります。
例:
for (int i = 0; i < 10; i++) { if (i == 5) continue;
// i が 5 のとき、残りのコードをスキップ if (i == 8) break;
// i が 8 のとき、ループを終了 // その他のコード }これらのループ構造は、プログラムの異なる部分で反復処理を必要とする場合に使用され、非常に柔軟で効果的です。適切なループを選ぶことで、コードの可読性と効率を向上させることができます。

コメント