網頁

2022/7/18

C++ 變數初始化

C++變數宣告初值的方式如下。


C++某些型別如下面的intlong變數宣告若未定義值則為隨機的任意值。

main.cpp

#include <iostream>
#include <string>
using namespace std;

int main() {
    bool b;
    char c;
    int i;
    long l;
    float f;
    double d;
    string s;

    cout << b << endl; // 0
    cout << c << endl; // ''
    cout << i << endl; // 53674021
    cout << l << endl; // 140732919482464
    cout << f << endl; // 0
    cout << d << endl; // 0

    cout << s << endl; // ""
    
    return 0;
}

所以C++宣告變數時最好明確地給予一個初值,設定變數初值的方法有三種:

  • C-like initialization - C型初始化
  • Constructor initialization - 建構式初始化
  • Uniform initialization - 統一初始化/大括弧初始化(C++11標準)

統一初始化是C++11才支援的標準,所以要用C++11標準編譯。

main.cpp

#include <iostream>
#include <string>
using namespace std;

int main() {
    // C-like initialization
    int a = 1;
    string s1 = "foo";

    // Constructor initialization
    int b(2);
    string s2("bar");

    // Uniform initialization
    int c{3};
    string s3{"baz"};

    cout << a << endl;  // 1
    cout << b << endl;  // 2
    cout << c << endl;  // 3
    cout << s1 << endl; // foo
    cout << s2 << endl; // bar
    cout << s3 << endl; // baz
    
    return 0;
}



沒有留言:

張貼留言