質問: strstr(a, b); // *p → p printf("%s", p); return 0; } ```
回答: あくまでaが指している先は『文字』です。 文字が連続領域に置かれている為、またヌル終端されている為に文字列として扱うことができます。 実際 *a = 'a'; ならエラーは吐かない筈です。これは a[0] = 'a'; と同じです。 (ただしヌル終端していないので、文字列としては不適格)