if u want to print the address of first character in the string it is same as you did with other array. For Ex.
int intArray[3] = {1,2,4};
char *str = "C for Cat";
//This will print the address of 1 in inArray array
printf("The address of intArray[1] is %d", intArray);
//And this will print the address of 'C' in str
printf("The address of 'C' is %d", str);
the job of puts(str) function is to print all the character starting at address str till it finds '\0'.
When you think you have done a lot, then be ready for YOUR downfall.