簡単な質問です。
書ける
char string[] = "Hello world";
char *p = string;
printf("%s", p);
そして、それHello world
を出力として印刷してもらいます。しかし、ここでポインターはどのように機能していますか?
配列内の各ポイントには、個別のメモリ位置がありますよね?したがって、文字列配列の長さが12の場合、12のメモリスペースを使用します。ポインタは12ではなく1つのメモリ位置しか指すことができないと思いました。ポインタpはこれをどのように達成していますか?
通常の配列とポインタを使用して、配列をスケーリングする場合は、各メモリ位置を調べてその値を出力するときに*p++を実行します。なぜそこに配列を1つずつトラバースする必要があるのですか?しかし、ここでは単に全体を指し示していますか?
1つの(int配列)では、各ポインターが1つのメモリ位置しかポイントできないため、ポインターをインクリメントしているように見えますが、char配列では、何らかの方法ですべてのポインターを指すことができます。