In C++ are elements of an array of pointer type by default guaranteed to be initialized to nullptr?

Yes, it is guaranteed.

Node() constructs a temporary object and performs value initialization. As the result, all the elements of the member array subnodes are zero-initialized as null pointer. x is copy-initialized from the temporary object and its members get the same initialization result too. (Because of copy elision x might be value-initialized directly, anyway the result won't change.)

if T is a class type with a default constructor that is neither user-provided nor deleted (that is, it may be a class with an implicitly-defined or defaulted default constructor), the object is zero-initialized and then it is default-initialized if it has a non-trivial default constructor;

and

The effects of zero initialization are:

  • If T is a scalar type, the object's initial value is the integral constant zero explicitly converted to T.
  • If T is an non-union class type, all base classes and non-static data members are zero-initialized, and all padding is initialized to zero bits. The constructors, if any, are ignored.
  • ...
  • If T is array type, each element is zero-initialized.
  • ...

BTW: For default initialization like Node x;, the elements of the member array would be initialized to indeterminate values.