私のCプログラムに次のコードがあるとしましょう:
#include <stdio.h>
void PrintSomeMessage( char *p );
int main(int argc, char *argv[]) {
char arr[10] = "hello";
PrintSomeMessage(&arr[0]);
return 0;
}
void PrintSomeMessage(char *p)
{
printf("p: %s",p);
}
これの出力が、単一の文字「h」ではなく「hello」という単語全体になるのはなぜですか?
ただし、フォーマッタに a を入れると"%c"
、1 文字だけが出力されることは理解しています。それでも、このアドレスの各文字のメモリ アドレスは異なります。誰か説明してくれませんか?