Which one is easier to understand:
char *argv[] is intended to be an array of pointers to chars
or
char **argv is a pointer to a pointer to a char
Yes, you can code C in a non-intuitive way, but why would you?
Which do you prefer:
a[2]
*(a + 2)
*(2 + a)
2[a]
all have the same effect. Why use []
when it is just syntactic sugar? Because it is more readable. In a similar vein: (*ps).member
is not as readable as ps->member