Lua rule
Lua rule
A ruler with the logo for the Lua Programming language
Lua rule
A ruler with the logo for the Lua Programming language
Why does it go to 19 and not 20? You're saving on the wrong end!
thats probably taking the piss with how lua handles array indexing.
in most programming languages,
the first element of an array is element 0,
in lua arrays start with element 1.
imo it kinda makes sense,
but it causes confusion because it goes against established conventions
The reason for the convention is that it used to be just a pointer (adress) to consecutive elements in memory. A[x] is then literally translated to the adress of A + sizeof(x)*x. Meaning that the first element is at A[0].
Scratch and Mathematica also have arrays start at one.
I never worked with lua but I get it now. Thanks!
this is the ruler for guys who say they have a 12" dick
BRAZIL MENTIONED!
There's a syntax for indexing starting from 0, it's
*(&arr+0) to *(&arr+(n-1))
For the rest of us who are manipulating sets of values and not offsets on pointers and aren't delusionally attached to conventions, there's arr[1] to arr[n]
But then arr.length == the last index, and that’s just too convenient :(
C
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
not int* foo
. I won't die on that mountain fortress because it is unassailable. Never write char **argv
(but char *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.
You forgot putting in the alt text that the ruler's scale starts at 1 instead of starting at 0.
I honestly didn't notice.