Defining a Variable
You create or define a variable by stating its type, followed by one or more spaces, followed by the variable name and a semicolon. The variable name can be virtually any combination of letters, but it cannot contain spaces. Legal variable names include x, J23qrsnf, and myAge. Good variable names tell you what the variables are for; using good names makes it easier to understand the flow of your program. The following statement defines an integer variable called myAge:
int myAge;
NOTE
When you declare a variable, memory is allocated (set aside) for that variable. The value of the variable will be whatever happened to be in that memory at that time. You will see in a moment how to assign a new value to that memory.
As a general programming practice, avoid such horrific names as J23qrsnf, and restrict single-letter variable names (such as x or i) to variables that are used only very briefly. Try to use expressive names such as myAge or howMany. Such names are easier to understand three weeks later when you are scratching your head trying to figure out what you meant when you wrote that line of code.
Try this experiment: Guess what these programs do, based on the first few lines of code:
Example 1
int main() { unsigned short x; unsigned short y; unsigned short z; z = x * y; return 0; }
Example 2
int main () { unsigned short Width; unsigned short Length; unsigned short Area; Area = Width * Length; return 0; }
NOTE
If you compile this program, your compiler will warn that these values are not initialized. You'll see how to solve this problem shortly.
Clearly, the purpose of the second program is easier to guess, and the inconvenience of having to type the longer variable names is more than made up for by how much easier it is to maintain the second program.
Case Sensitivity
C++ is case sensitive. In other words, uppercase and lowercase letters are considered to be different. A variable named age is different from Age, which is different from AGE.
NOTE
Some compilers allow you to turn case sensitivity off. Don't be tempted to do this; your programs won't work with other compilers, and other C++ programmers will be very confused by your code.
Various conventions exist for how to name variables, and although it doesn't much matter which method you adopt, it is important to be consistent throughout your program because inconsistent naming will confuse other programmers when they read your code.
Many programmers prefer to use all lowercase letters for their variable names. If the name requires two words (for example, my car), two popular conventions are used: my_car or myCar. The latter form is called camel notation because the capitalization looks something like a camel's hump.
Some people find the underscore character (my_car) to be easier to read, but others prefer to avoid the underscore because it is more difficult to type. This book uses camel notation, in which the second and all subsequent words are capitalized: myCar, theQuickBrownFox, and so forth.
NOTE
Many advanced programmers employ a notation style referred to as Hungarian notation. The idea behind Hungarian notation is to prefix every variable with a set of characters that describes its type. Integer variables might begin with a lowercase letter i, longs might begin with a lowercase l. Other notations indicate constants, globals, pointers, and so forth. Most of this is much more important in C programming and won't be used in this book.
It is called Hungarian notation because the man who invented it, Charles Simonyi of Microsoft, is Hungarian. You can find his original monograph at http://www.strangecreations.com//library/c/naming.txt.
Microsoft has moved away from Hungarian notation recently, and the design recommendations for C# strongly recommend not using Hungarian notation. Their reasoning for C# applies equally well to C++.
Keywords
Some words are reserved by C++, and you may not use them as variable names. These are keywords used by the compiler to control your program. Keywords include if, while, for, and main. Your compiler manual should provide a complete list, but generally, any reasonable name for a variable is almost certainly not a keyword. A list of C++ keywords is available in Appendix B.
NOTE
DO define a variable by writing the type, then the variable name.
DO use meaningful variable names.
DO remember that C++ is case sensitive.
DO understand the number of bytes each variable type consumes in memory and what values can be stored in variables of that type.
DON'T use C++ keywords as variable names.
DON'T use unsigned variables for negative numbers.