c が puts() を使用してメッセージの一部を表示する方法を理解できません。私が同等と考える 2 つの方法は、この関数では同じようには機能しません。例えば
void skippie(char *msg)
{
puts(msg + 6);
}
char *msg = "Don't call me!";
skippie(msg);
これは正常にコンパイルされますが、そうではありません
void skippie(char *msg)
{
puts(msg[6]);
}
char *msg = "Don't call me!";
skippie(msg);
puts() はどのように 2 つを区別し、1 つだけをコンパイルしますか? コンパイラは、「const」文字が必要だと不平を言いますが、その構文を使用しようとしても失敗します。誰でもこれを説明できますか?