The strange syntax of `write(*,’(A,$)’)` used in the calculation of the factorial

See the following debugging result of the above code snippet:

As you can see, the variable x has the following initial value:

Name : x
	Details:((8.5408832230361244e+194,3.9038200537988823e+233), (1.9832370873985416e+272,2.1089767984530232e-52))
	Default:[2]
	Decimal:[2]
	Hex:[2]
	Binary:[2]
	Octal:[2]

But finally, the output is as follows:

abcdefghijklmnopqrstuvwxyz012345!

Here, you start by defining two complex numbers that should have four components corresponding to their real and imaginary parts. But finally, you assign it with two strings. Does it make sense?

And I also noticed the following information reported by GDB:

Regards,
HZ