Shailendra B. answered 03/21/19
Software technical lead with 28 years experience in Embedded/Linux/C
x3 is simply a variable name. It has nothing to do with the number 3 really.
x[3] is an array of 3 entries (Depending on the type that precedes x[3])
For int list[8];
8 integers worth of memory, so if integer is 4 bytes, then 32 bytes and if integer is 8 bytes then 64 bytes.
First array element would be list[0]
In C language you cannot pass an entire array unless its embedded in a structure. When you pass an array, you are essentially passing its address, so effectively the whole array is available/accessible to the called function.