When you replace the initialiser with 1, it should only initialse the first element to 1. Objects initialized in this way have unmentioned elements set to 0 or NULL (recursing into aggregates, initialising the first named union member). (See C11 standard, 6.7.9.21. 6.7.9.10 gives the rules for selecting the default value. Aside from the extra syntax, I don&#x27;t think the rules differ substantially from C89...)<p>C++ lets you do &quot;uint32_t array[10]={}&quot;, which is something C should allow as well, really. But it doesn&#x27;t.