Skip to content
Related Articles

Related Articles

Uninitialized primitive data types in C/C++
  • Difficulty Level : Medium
  • Last Updated : 04 Sep, 2018

What do you think happens when you use an uninitialized primitive data type?
Well you may assume that the compiler should assign your primitive type variable with meaningful values like 0 for int, 0.0 for float. What about char data type?

Let’s find the answer to that by running the code in the IDE.

filter_none

edit
close

play_arrow

link
brightness_4
code

#include <iostream>
  
using namespace std;
  
int main()
{
    // The following primitive data type variables will not
    // be initialized with any default values
    char ch;
    float f;
    int i;
    double d;
    long l;
  
    cout << ch << endl;
    cout << f << endl;
    cout << i << endl;
    cout << d << endl;
    cout << l << endl;
  
    return 0;
}

chevron_right


Output in GFGs IDE:


5.88052e-39
0
6.9529e-310
0

Output in Codechef IDE:


0
0
0
0

Output on my machine:




1.4013e-045
0
2.96439e-323
0


Why C/C++ compiler does not initialize variables with default values?

“One of the things that has kept C++ viable is the zero-overhead rule: What you don’t use, you don’t pay for.” -Stroustrup.

The overhead of initializing a stack variable is costly as it hampers the speed of execution, therefore these variables can contain indeterminate values. It is considered a best practice to initialize a primitive data type variable before using it in code.

Attention reader! Don’t stop learning now. Get hold of all the important C++ Foundation and STL concepts with the C++ Foundation and STL courses at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up
Recommended Articles
Page :