Array will be initialized with default values of array element type. Char is not a reference type, so null is not default value for it. For char default is 0.
You can check array[i] == default(char), but this will not tell you if array item is empty, or it has default value assigned by you:
char[] niz = new char[16];
niz[0] = 'c';
niz[1] = (char)0; // default value
niz[2] = '\0'; // default value
niz[3] = 'a';
niz[4] = 'r';
niz[5] = 'p';
for(int i = 0; i < niz.Length; i++)
Console.WriteLine(niz[i] == default(char));
As Ehsan suggested, you can use array of nullable chars, but again, you will not know whether item is not initialized, or you have assigned null value to it. I suggest you to use List<T> class instead of array. It will contain only items you need (i.e. no default empty items).