Bon, on va faire un ptit cours sur les char 
Donc tu as plusieurs possibilités. Déjà, la différence entre " et ´:
" c" -> une chaine de caractère, soit const char *, composée de deux char: c\0 ( \0 étant le caractère de fin de chaine).
´c´ -> valeur ASCII de la lettre c
maintenant si tu fais:
char caractere = ´c´; -> tu crées une variable de type char contenant la lettre c
char *string = " c"; -> une chaine de caractère(donc se terminant par \0) contenant c
char *string = " Bonjour"; -> chaine de caractère contenant bonjour
char string[] = " Bonjour"; -> idem que pour avant
Comme tu dois le savoir, déclarer une chaine comme mes deux derniers exemples est strictement équivalent. De plus, lorsque tu définis un tableau de n´importe quoi, le simple fait d´utiliser le NOM du tableau revient à utiliser un pointeur sur le premier élément du tableau.
Voilà en gros, j´arrête parce que je suis sous Lynx, un navigateur en console sous linux, et ça commence à me gaver 