Home > OS >  what is the value of an uninitialized static char in c?
what is the value of an uninitialized static char in c?

Time:01-03

The default value of an uninitialized static int is zero. What about if the datatype is a char?

#include<stdio.h>

int main()
{
    static char i;
    printf("%c", i);
    return 0;
}

This program executes without giving any output - why?

CodePudding user response:

In your example, i is default initialized to zero, and when you output that as a character using printf with the %c format you are outputting the null character \0, which is why you don't see anything.

If you wanted to see the numerical value, you should use printf("%i", (int)i)

CodePudding user response:

In C static variables are auto initialized.

  • If it's of integer number type, like int, etc… It will be initialized to 0.

  • If it is of floating number type like float, etc... It will be initialized to 0.0.

  • If it's of char type then it will be initialized with null character, \0.

  • If it's of pointer type it will get it's default value as NULL

  •  Tags:  
  • c
  • Related