Uninitialized primitive data types in C/C++
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.
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 or garbage values as memory space is provided when we define a data type. It is considered a best practice to initialize a primitive data type variable before using it in code.