It is just a way of indexing different constants. Also, if you run the same equation through twice you will probably get out two different constants, which is done so that you do not accidentally tie the equations together. For example,
A = dsolve(eqn1);
B = dsolve(eqn1);
C = [A, B];
Then the two parts of C need to have different constants (after all, they might represent different initial conditions), so dsolve() will emit different C* symbols.