Hacker News new | ask | show | jobs
by edflsafoiewq 2120 days ago
It teaches declaration-mirrors-use

  char *a         => *a is a char
  char a[3]       => a[i] is a char
  char f(char)    => f(c) is a char
  char (*f)(char) => (*f)(c) is a char (short form: f(c))
2 comments

But that doesn't mean it's understandable!
With the minor problem that `a[3]` isn't valid.
Depends how you use it (&a[3], sizeof(a[3])). But its type is still char.
IIRC, both of those are undefined.
&a[3] is allowed, it's a one-past-the-end-of-the-array pointer. &a[4] would be UB (if it were evaluated).

sizeof(a[3]) is not evaluating a[3], so it also isn't UB.