¿Dónde se almacenará una cadena constante en la memoria?

A veces usamos este tipo de código en nuestra progtwigción.

char *p = "Sam"; 

Aquí la dirección de la cadena de caracteres constante “Sam” se almacenará en el puntero de caracteres p. ahora aqui
¿Quiero preguntar dónde se almacenará el Sam?

El estándar no especifica esto. Normalmente, la cadena literal ( "Sam" ) se almacenará en la sección de datos, en una página de solo lectura.

En cuanto a p sí, depende de si es automático o estático.

La cadena “Sam” generalmente se almacenará en la memoria global en la misma región que las constantes globales.

Sin embargo, si hiciste esto:

 char p[] = "Sam"; 

Entonces estaría en la stack en su lugar. (como un inicializador de matriz)