【Primer C++】第2章:変数と基本タイプ

1771 ワード

を使用して組み込みタイプを初期化すると、情報が失われるリスクがある場合、コンパイラはエラーを報告します.
long double ld = 3.1415926536;

int b = { ld };

デフォルト初期化
変数のデフォルト値は、変数のタイプと変数の位置に関係します.
  • は、任意の関数以外に定義された変数を0に初期化する.
  • は、関数体の内部に定義された内蔵型変数が初期化されない.

  • 変数の宣言と定義
    変数の宣言:
    extern int i;
    

    変数の宣言は、変数名の前にキーワードexternを追加し、表示できないように変数を初期化することである.また、関数体内部では、externキーワードで表記された変数を初期化することはできない
    変数に初期値を割り当てる場合:
    extern double pi = 3.1416; //    extern   ,       
    
    int j; //     
    

    名前の役割ドメイン
    int reused = 42;
    
    int main()
    {
    	int reused = 1;
    
    	std::cout << reused << std::endl;
    
    	std::cout << ::reused << std::endl;	//            ,          ,                
    
    }
    

    複合タイプ
    参照(左参照)
    参照はオブジェクトではありません.
    変数を初期化すると、初期値が新しいオブジェクトにコピーされます.リファレンスを定義するとき、プログラムはコピーではなくリファレンスとその初期値をバインドします.初期化が完了すると、初期値オブジェクトとバインドされます.したがって、リファレンスを別のオブジェクトに再バインドすることはできません.したがって、リファレンスは初期化する必要があります.
    int &ai = 10; //  
    const int &ab = 10; //  
    

    ししん
    ポインタ自体がオブジェクトです.
          :
    int *p1 = nullptr;
    int *p2 = 0;
    //       #include cstdlib
    int *p3 = NULL; // NULL      
    
    void*ポインタ:任意のオブジェクトを格納可能なアドレス
    ポインタへの参照:
    int i = 42;
    int *p;
    int *&r = p;
    

    rのタイプが何であるかを理解するには、簡単な方法でrの定義を右から左に読む:変数名に最も近い記号は変数のタイプに最も直接的な影響を及ぼすため、rは参照であり、宣言子の残りの部分はr参照のタイプを決定する.
    カスタムデータ構造
    struct Sales_data {/*......*/} accm, trans, *salesptr; //         
    

    C++11の新しい規格では、データメンバーにクラス内の初期値を提供することができ、オブジェクトを作成するときに、クラス内の初期値はデータメンバーを初期化するために使用されます.
    プリプロセッシング機能(ヘッダファイル保護子)
    #ifndef XXX
    #define XXX
     ......
    #endif