esse quam videri
Revision as of 17:11, 7 June 2019 by Janell (talk | contribs)
Jump to: navigation, search


In programming, a variable is comprised of:

  1. a storage location (identified by a memory address)
  2. an identifier
  3. value (a known or unknown quantity of information)



As the name variable implies, information may change as the program executes. However, its name, type, and location often remain fixed.

A Compiler will replace a variable's identifier with the data location.

scalar: an alternative term for a variable.


An identifier is the name used to reference either the the stored value or the variable itself; the variable's name can be used separately from the data it represents.






Changing the type of data stored in a variable may change the way the data can be used. For example, in most programming languages two integers added together will produce a sum that is also an integer.

a = 1;

b= 2;

c = a+b; // c will be 3

However, if a is a string (such as "hello"), adding it to an integer would not necessarily provide you with an integer as a result.

a = "hello";

b= 2;

c = a+b; // c will be hello2

Strong Typing

Memory Allocation

Garbage Collection

Naming Conventions

Template:Main Template:See also

Unlike their mathematical counterparts, programming variables and constants commonly take multiple-character names, e.g. COST or total. Single-character names are most commonly used only for auxiliary variables; for instance, i, j, k for array index variables.

Some naming conventions are enforced at the language level as part of the language syntax which involves the format of valid identifiers. In almost all languages, variable names cannot start with a digit (0–9) and cannot contain whitespace characters. Whether or not punctuation marks are permitted in variable names varies from language to language; many languages only permit the underscore ("_") in variable names and forbid all other punctuation. In some programming languages, sigils (symbols or punctuation) are affixed to variable identifiers to indicate the variable's datatype or scope.

Case-sensitivity of variable names also varies between languages and some languages require the use of a certain case in naming certain entities;<ref group="note">For example, Haskell requires that names of types start with a capital letter.</ref> Most modern languages are case-sensitive; some older languages are not. Some languages reserve certain forms of variable names for their own internal use; in many languages, names beginning with two underscores ("__") often fall under this category.

However, beyond the basic restrictions imposed by a language, the naming of variables is largely a matter of style. At the machine code level, variable names are not used, so the exact names chosen do not matter to the computer. Thus names of variables identify them, for the rest they are just a tool for programmers to make programs easier to write and understand. Using poorly chosen variable names can make code more difficult to review than non-descriptive names, so names which are clear are often encouraged.<ref name="Choosing good variable names">How Not To Pick Variables, Retrieved July 11, 2012 [DEAD LINK]</ref><ref name="EWD1044">Template:Citation</ref>

Programmers often create and adhere to code style guidelines which offer guidance on naming variables or impose a precise naming scheme. Shorter names are faster to type but are less descriptive; longer names often make programs easier to read and the purpose of variables easier to understand. However, extreme verbosity in variable names can also lead to less comprehensible code.

Variable Types

There are many types of variables, such as: static, stack-dynamic, explicit heap-dynamic, and implicit heap-dynamic.


A static variable is also known as global variable, it is bound to a memory cell before execution begins and remains to the same memory cell until termination. A typical example is the static variables in C and C++.


A Stack-dynamic variable is known as local variable, which is bound when the declaration statement is executed, and it is deallocated when the procedure returns. The main examples are local variables in C subprograms and Java methods.

Explicit Heap Dynamic

Explicit Heap-Dynamic variables are nameless (abstract) memory cells that are allocated and deallocated by explicit run-time instructions specified by the programmer. The main examples are dynamic objects in C++ (via new and delete) and all objects in Java.

Implicit Heap-Dynamic

Implicit Heap-Dynamic variables are bound to heap storage only when they are assigned values. Allocation and release occur when values are reassigned to variables. As a result, Implicit heap-dynamic variables have the highest degree of flexibility. The main examples are some variables in JavaScript, PHP and all variables in APL.


See also


External Links