ca is an array of 5 strings without a null terminator.
cp is a pointer to ca[0].
*cp is ca[0]
while (*cp) is supposed to loop until *cp hits a null terminator, but remember ca is not null terminated, so the loop will just keep going until it hits some other null somewhere.
Thank you kbw, I was right after all, :D well thats what I thought. When I ran it like around 2-3 times it gave me 3 of the same symbols after the string, and I thought it would be different(undefined)