Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

Cのポインタでは*(hoge +3)とhoge[3]と3[hoge]は同じ結果になる

$ cat sample.c
#include <stdio.h>

int makeTitle(char str[]) {
  printf("\n\n###%s###\n\n", str);   
  return 0;
}

int main() {
   char string[] = "Hello, world";

   makeTitle("文字列");
   printf("%s\n",string);
   printf("%s\n",(string + 7));

   makeTitle("文字");
   printf("%c\n",(string[7]));
   printf("%c\n",*(string + 7));
   printf("%c\n",(7[string]));
   printf("%c\n",*(7 + string));

   return 0;
}
$ ./sample.o 


###文字列###

Hello, world
world


###文字###

w
w
w
w