fork download
  1. #include <stdio.h>
  2.  
  3. int main( void )
  4. {
  5. char str[] = "kitty on your lap";
  6. char* a = NULL;
  7.  
  8. /* char* 型のポインタ、というイメージ */
  9. char* *b = NULL;
  10.  
  11. /* char* と char[] はシンタックスシュガー */
  12. a = str;
  13. b = &a;
  14.  
  15. /* 出力 */
  16. printf( "%s\n%s\n%s\n", str, a, *b );
  17.  
  18. /* char* と char[] は同じ(シンタックスシュガー)
  19. * -> char* 型は一次元配列として表現できる
  20.   */
  21. printf( "%c\n", str[2] );
  22. printf( "%c\n", a[2] );
  23.  
  24. /* 上と同様に
  25. * char** と char[][] は同じ(シンタックスシュガー)
  26. * -> char** は二次元配列で表現できる
  27. */
  28. printf( "%c\n", b[0][2] );
  29.  
  30. /*
  31. * たとえば、変数xがあったとして
  32. * 一次元配列の先頭アドレスは *x のように表される
  33. * 二次元配列の最初の要素の先頭アドレスは ( *x )[ 0 ] と表される
  34. */
  35. printf( "%c\n", ( *b )[2] );
  36.  
  37. return 0;
  38. }
  39.  
Success #stdin #stdout 0s 2156KB
stdin
Standard input is empty
stdout
kitty on your lap
kitty on your lap
kitty on your lap
t
t
t
t