C++ Variable Initialization

Variable initialization in C++ means assigning an initial value to a variable at the time of its declaration. Proper initialization helps avoid undefined behavior and ensures predictable program output.

1. Basic Initialization

The simplest way to initialize a variable is by assigning a value during declaration.

C++
Basic initialization example
int age = 25;
float price = 99.99f;
char grade = 'A';

2. Direct Initialization

In direct initialization, the value is provided inside parentheses.

C++
Direct initialization example
int age(30);
double pi(3.14159);

3. Copy Initialization

Copy initialization uses the equals (=) operator to assign a value.

C++
Copy initialization example
int x = 10;
string name = "CodeCrown";

4. Uniform Initialization (C++11)

Uniform initialization uses curly braces {} and prevents narrowing conversions.

C++
Uniform initialization example
int num{50};
double value{3.14};
// int x{3.5};  // Error: narrowing conversion

5. Zero Initialization

If a global or static variable is not explicitly initialized, it is automatically initialized to zero.

C++
Zero initialization example
#include <iostream>
using namespace std;

int globalVar;  // Automatically initialized to 0

int main() {
    cout << "Global Variable: " << globalVar;
    return 0;
}

6. Complete Example Program

C++
Program demonstrating different initialization methods
#include <iostream>
#include <string>
using namespace std;

int main() {
    int a = 10;           // Copy initialization
    int b(20);            // Direct initialization
    int c{30};            // Uniform initialization
    double d = 3.14;      // Copy initialization
    string name{"CodeCrown"}; // Uniform initialization

    cout << "a: " << a << endl;
    cout << "b: " << b << endl;
    cout << "c: " << c << endl;
    cout << "d: " << d << endl;
    cout << "name: " << name << endl;

    return 0;
}

Conclusion

C++ provides multiple ways to initialize variables, including basic, direct, copy, and uniform initialization. Modern C++ (C++11 and later) recommends using uniform initialization for better safety and clarity.