The const keyword stands for “constant”. It is a variable qualifier that modifies the behavior of the variable, making a variable “read-only”. This means that the variable can be used just as any other variable of its type, but its value cannot be changed. You will get a compiler error if you try to assign a value to a const variable.
Constants defined with the const keyword obey the same rules of variable scoping that govern other variables. This, and the pitfalls of using #define, often makes using the const keyword a superior method for defining constants than #define.
// this defines a variable called "pi", which cannot be changed: const float pi = 3.14; float x; // .... x = pi * 2; // it's fine to find the value of a const variable pi = 7; // illegal - you can't write to (modify) a constant
You can use either const or #define for creating numeric or string constants. For arrays, you will need to use const. In general, const is preferred over #define for defining constants.
License and Attribution
Portions of this page were adapted from the Arduino Reference Documentation, which is released under a Creative Commons Attribution-ShareAlike 3.0 License.