工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> C言語

C++変数とデータ型:int、double、char、string、boolを徹底解説

C++における変数

C++において、変数とはプログラマがデータを保持・操作するための名前付きストレージ領域です。すべての変数には明示的な型があり、それによってメモリ占有サイズ、許容値の範囲、実行可能な演算が決まります。

このチュートリアルでは以下を扱います:

C++の基本的な変数の型

C++における変数宣言のルール

C++の変数データ型

C++は豊富なプリミティブ型を提供します。void型は値を持たず、通常は何も返さない関数の戻り値型として使用されます。

算術型は2つのカテゴリに分かれます:

  1. 浮動小数点型:float(約32ビット)、double(約64ビット)、long double(実装依存で約96/128ビット)
  2. 整数型:整数、文字、bool。符号付きと符号なしの両方が存在

符号付き型は負、ゼロ、正の値を表現します。例えば8ビット符号付きcharの範囲は-127〜127です。

符号なし型は非負の値のみを保持します。8ビット符号なしcharの範囲は0〜255です。

データ型のサイズと範囲の一覧表

変数名(識別子)

識別子は英字、数字、アンダースコアを含められます。長さは無制限で、大文字小文字を区別します:

int guru99, gurU99, GuRu99, GURU99;

予約キーワードを識別子として再利用することはできません。明確な命名規則を採用すると可読性が向上します:変数は小文字、複合語はcamelCaseまたはsnake_case、クラス名は大文字で開始します。

命名規則の例

宣言と定義の例

int a = 5;
int b;
char c = 'A';
int a, b;
a = b = 1000;
int a(5);
int b{5};

C++のconst修飾子

初期化後に値を変更させたくない場合にconstを使用します:

const int bufSize = 512; // 入力バッファサイズ

const変数は初期化必須です。未初期化の場合コンパイルエラーになります。

const int i = get_size(); // OK:実行時初期化
const int j = 42;         // OK:コンパイル時初期化
const int k;              // エラー:未初期化のconst
const int i = 42;
const int ci = i;         // OK:iのコピー

C++における変数のスコープ

スコープは名前が可視である範囲を定義します。変数は宣言位置から、それを囲むブロックの終わりまでアクセス可能です。

#include <iostream>
int main() {
    int sum = 0;
    for (int val = 1; val <= 10; ++val)
        sum += val;
    std::cout << "Sum of 1 to 10 inclusive is " << sum << std::endl;
    return 0;
}

ネストしたスコープ

#include <iostream>
using namespace std;
int reused = 42; // グローバルスコープ
int main() {
    int unique = 0; // ブロックスコープ
    cout << reused << " " << unique << endl; // 42 0
    int reused = 0; // ローカルでグローバルを隠蔽
    cout << reused << " " << unique << endl; // 0 0
    cout << ::reused << " " << unique << endl; // 42 0
    return 0;
}

変数の型変換

C++は特定の条件下で暗黙的変換を行います。主なルールは以下の通りです:

符号付きと符号なし整数を混在させると、負の符号付き値が予期せず大きな符号なし値に変換されることがあります。

レジスタ変数

registerキーワードで、頻繁にアクセスされる変数をCPUレジスタに格納するようヒントを出せます。現代のコンパイラは通常このヒントを無視し、独自に最適化を行います。

register int i;

コメント

コメントはコンパイラによって無視され、コードの文書化に役立ちます:

/* This is a comment */
/* C++ comments can also span multiple lines */

エスケープシーケンス

エスケープシーケンスは、印刷不可能または特殊な文字を表現します:

エスケープ説明
\n改行
\t水平タブ
\\バックスラッシュ
\bバックスペース
\rキャリッジリターン
\v垂直タブ
\fフォームフィード
\aアラート(ベル)
\"ダブルクォート
\'シングルクォート
\?クエスチョンマーク
cout << '\n'; // 改行
cout << "\tguru99!\n"; // タブ + テキスト + 改行

一般化シーケンスでは16進数や8進数の値を使用:

\7  // ベル
\12 // 改行
\40 // スペース
\x4D // 'M'

まとめ

C言語

  1. C# 変数とプリミティブデータ型:完全マスターガイド
  2. C++変数・リテラル・定数完全ガイド:基礎から実践まで
  3. C++データ型完全ガイド:基本型、修飾子、ベストプラクティス
  4. C言語変数・定数・リテラル完全ガイド
  5. C言語データ型完全解説:int、float、charなど
  6. C言語ユーザー定義関数の4つの実証済みパターン
  7. C言語ストレージクラス完全理解:スコープ・ライフタイム・パフォーマンス
  8. C++演算子を徹底解説:種類、例、サンプルプログラム付き
  9. C言語の変数を理解する:型、命名規則、メモリ管理
  10. C言語可変長引数のマスター:実践ガイド
  11. Java変数の種類:ローカル、インスタンス、クラス変数を徹底解説