I don't understand the difference in the `t` and `p` pointers. The `t` pointer gives the same output when printing `t` and `*t` only when using `**t` I get the value.

What's the difference between them?  

The code is:

```
int main()
{
    int B [2][3] = {
      {2, 3, 6},
      {4, 5, 8}
    };
    int *p = B;
    int (*t)[3] = B;
    printf ("%d\n", p);
    printf ("%d\n", t);
    printf ("%d\n", *p);
    printf ("%d\n", *t);
    printf ("%d\n", **t);

    return 0;
}

```

Output is:

```
6422000
6422000
2
6422000
2

```