Naja - eigentlich definierst du mit #define keine "Konstante", sondern eine Ersetzungsregel für den Makropräprozessor. Daher brauchts auch weder einen Datentyp noch ein "const".
Beispiel:
#define PFAD "C:\KONTODATEI.TXT"
Ab dieser Zeile wird jedes Auftreten der Zeichenkette PFAD durch "C:\KONTODATEI.TXT" ersetzt. Damit erzeugt man noch nichtmal jedes mal den selben String (im Sinne von gleicher Speicheradresse), sondern lediglich einen inhaltlich gleichen.
Eine String-Konstante in C ist auch etwas komplizierter. Strenggenommen müsste es sowas wie
const char const *str = "Text";
sein. Ein Konstanter Zeiger vom Typ char ("Zeichen") mit konstantem Inhalt. Sprich, weder die Speicheradresse noch der Speicherinhalt können über die Konstante "str" verändert werden.
Muss man nicht mögen, ist in C aber so mit den Strings...
Wo gibt es da missverständnisse, das ist genau das, was du hier in all den Antworten findest. Zusätzlich eben Erklärungen zum define.