A ruler with the logo for the Lua Programming language
ptr[n] == n[ptr] == *(ptr+n) == *(n+ptr).
Addition is commutative so of course array indexing is and why the hell are you taking the address of a pointer. Also it’s not “int pointer foo” but “foo, dereferenced, is an int” that’s why it’s
int *foo
notint* foo
. I won’t die on that mountain fortress because it is unassailable. Never writechar **argv
(butchar *argv[]
) but it’s vital to understand why it doesn’t make a difference to the compiler. It’s what passes as self-documenting code in C land.Also 0-based indexing is older than C. It’s older than assembly.
Why do you assume it was a pointer type? There’s no types. Why do you assume C either? This is pseudo code to illustrate pointer offsets
Why do you assume it was a pointer type?
Because afterwards you said
arr[n]
. By conventionn
is definitely an integer and if arr is also, say, an integer, you geterror: subscripted value is neither array nor pointer nor vector
Why do you assume C either?
Because you didn’t write
^(@arr+0)
(Not sure that’s even valid though my Pascal is very rusty).This is pseudo code to illustrate pointer offsets
Granted. But then it’s still Pseudo-C, not Pseudo-Pascal or Pseudo-Whitespace.
It’s pseudo-nothing
It conveys a point, which you got, and if you decide to invent a syntax and bicker on it it’s just you
Really pointless discussion