In C++ unless a const variable's address is taken it is treated as a literal constant and inserted into the code as if its value had been entered literally. That is to say:
const int BUFFLEN = 16 ;
char buffer[BUFFLEN] ;
will generate the same code as:
char buffer[16] ;
The const BUFFLEN does not exist in the memory map as a separate object unless its address is explicitly referenced for example:
printf( "%p", &BUFFLEN ) ;
Given that its address is not referenced, the code generated will be smaller than if it existed in a specific address and had to be fetched and loaded into a register each time it were used.
Moreover no non-const int must exist in R/W memory, but if it has a const initialiser, that initialisation value must exist in the code space too. So for example:
int foo = 16 ;
Will consume space in RAM and also store the initialiser value in ROM (in the case of an Arduino) which is copied to the RAM on start-up before main or any global static object constructors.
So yes it is possible indeed likely that a const will consume fewer resources than a non-const. But I would it is kind of a side-effect of the semantics of const rather than its purpose.
constor not. So it's possible that in both cases no memory is allocated for theint.const