your image

What are the default values of static variables in C? - GeeksforGeeks

geeksforgeeks
Related Topic
:- C language programming languages

What are the default values of static variables in C?

  • Difficulty Level : Basic
  • Last Updated : 28 May, 2017

In C, if an object that has static storage duration is not initialized explicitly, then:
— if it has pointer type, it is initialized to a NULL pointer;
— if it has arithmetic type, it is initialized to (positive or unsigned) zero;
— if it is an aggregate, every member is initialized (recursively) according to these rules;
— if it is a union, the first named member is initialized (recursively) according to these rules.

For example, following program prints:
Value of g = 0
Value of sg = 0
Value of s = 0

 

 

 

#include<stdio.h>

int g;  //g = 0, global objects have static storage duration

static int gs; //gs = 0, global static objects have static storage duration

int main()

{

  static int s; //s = 0, static objects have static storage duration

  printf("Value of g = %d", g);

  printf("\nValue of gs = %d", gs);

  printf("\nValue of s = %d", s);

  

  getchar();

  return 0;

}

Please write comments if you find a

Comments