I’m not sure if the term’s actually ‘Array Addition’.
I’m trying to understand what does the following line do:
int var[2 + 1] = {2, 1};
How is that different from int var[3]?
I’ve been using Java for several years, so I’d appreciate if explained using Java-friendly words.
Edit: Thousands of thanks to everyone who helped me out, Occam’s Razor applies here.
It’s not different. C++ allows expressions (even non-constant expressions) in the subscripts of array declarations (with some limitations; anything other than the initial subscript on a multi-dimensional array must be constant).
int var[]; // illegal int var[] = {2,1}; // automatically sized to 2 int var[3] = {2,1}; // equivalent to {2,1,0}: anything not specified is zero int var[3]; // however, with no initializer, nothing is initialized to zeroPerhaps the code you are reading writes
2 + 1instead of3as a reminder that a trailing0is intentional.