C – Initializing a Multidimensional Array: {0} vs {{{0}}}

arraysc++initialization

In the C code I am analyzing, there are a lot of multidimensional (struct) arrays which are initialized with a different number of curly brackets e.g. {{0}} or {{{0}}}.

However, replacing these by {0} also works perfectly.

Is there a (functional) difference between using one or more sets of curly brackets ({}) occurrences ?

Best Answer

No, there is no functional difference. The C standard allows to leave out intermediate {}. In particular, the form { 0 } is an initializer that can be used for all data types.