Zero as a Universal Initializer

Zero as a Universal Initializer

The literal 0 is an int. However, it can be used as a universal initializer for every data type, since it is automatically cast to the appropriate type. In this respect, 0 is a special case because the compiler examines its context to determine its type. For example:

   void *p = 0;   // when 0 is used to initialize a pointer, the compiler treats it as if it were NULL.  float salary = 0;   // 0 is cast to a float  char name[10] = {0};   // 0 cast to a ' '  void (*pf)(int) = 0;   // pointer to a function


Share the Post: