Predict the output of following C programs.
Both of the above programs don’t compile in C. We get the following compiler error in C.
error: initializer element is not constant
In C, static and global variables are initialized by the compiler itself. Therefore, they must be initialized with a constant value.
Note that the above programs compile and run fine in C++, and produce the output as 10.
As an exercise, predict the output of following program in both C and C++.
This article is contributed by Shankar Shastri. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.
- Initialization of static variables in C
- Difference between Static variables and Register variables in C
- Implicit initialization of variables with 0 or 1 in C
- Initialization of variables sized arrays in C
- Can Global Variables be dangerous ?
- Static Variables in C
- What are the default values of static variables in C?
- How are variables scoped in C - Static or Dynamic?
- Internal static variable vs. External static variable with Examples in C
- Initialization of data members
- Initialization of a multidimensional arrays in C/C++
- Redeclaration of global variable in C
- How Linkers Resolve Global Symbols Defined at Multiple Places?
- Static functions in C
- C++ | Static Keyword | Question 1
- C++ | Static Keyword | Question 2
- When are static objects destroyed?
- Can static functions be virtual in C++?
- Static data members in C++
- C++ | Static Keyword | Question 3