w3resource

C Variables and Constants

What is variable?

Variables in C have the same meaning as variables in algebra. A variable in C is a storage unit, which sets a space in memory to hold a value and can take different values at different times during program execution.

Rules to construct a valid variable name

1. A variable name may consists of letters, digits and the underscore ( _ ) characters.

2. A variable name must begin with a letter. Some system allows to starts the variable name with an underscore as the first character.

3. ANSI standard recognizes a length of 31 characters for a variable name. However, the length should not be normally more than any combination of eight alphabets, digits, and underscores.

4. Uppercase and lowercase are significant. That is the variable Totamt is not the same as totamt and TOTAMT.

5. The variable name may not be a C reserved word (keyword).

Some valid variable names

Total Amount ctr name1
n1 M_age AMOUNT  

Some invalid variable names

13th (name) 111 %nm

Naming Conventions

Generally, C programmers maintain the following conventions for naming variables.

  • Start a variable name with lowercase letters.
  • Try to use meaningful identifiers
  • Separate "words" within identifiers with mixed upper and lowercase (for example empCode) or underscores (for example emp_code).
  • For symbolic constants use all uppercase letters (for example #define LENGTH 100, #define MRP 45).

Keywords and Identifiers

Every C word is classified as either a keyword or an identifier. Each keyword has a specific meaning and these meanings cannot be changed. Keywords serve as basic building blocks for program statements. There are only 32 keywords in C. The list of all keywords in ANSI C is listed in the following table. All keywords must be written in lowercase.

auto double int struct
break else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while

Constants

Constants in C refer to a specific quantity that doesn't change during the execution of a program.

Types of Constants

  • Integer Constants
  • Real Constants
  • Single Character Constants
  • String Constants

Rules to construct Integer Constant

  • An integer constant refers to a sequence of digits. The three types of integers are decimal, octal and hexadecimal
  • No embedded blanks, commas, and non-numeric character are permitted within an integer constant.
  • An integer constant must contain one digit
  • Decimal integers consist set of digits, 0 to 9 without any decimal point and can be preceded by an optional +ve or -ve sign.
  • An octal integer constant contains any combination of digits between 0 and 7 with a leading 0.
  • A hexadecimal constant contains any combination of digits between 0 and 9 and can also hold alphabets between A and F or a and f with prefix 0x or 0X. Alphabets A or a represents number 10 and F or f represents 15.
  • The largest integer value for the 16-bit machine is 32767 and 2147483647 for a 32-bit machine.

Example of various valid numeric constants

Constant Type Constant Type
241 Decimal Integer 047 Octal Integer
-973 Decimal Integer 053 Octal Integer
0 Decimal Integer 0X59 Hexadecimal Integer
+4177 Decimal Integer 0x47F Hexadecimal Integer

Example of some invalid numeric constants

Invalid Constant
05 241
7,412
$120

Rules to construct Real Constant

  • A real constant is a number that may have a fractional part.
  • It could be either +ve or -ve.
  • No embedded blanks, commas, and non-numeric character are permitted within a real constant.
  • A real number may also be expressed in exponential notation. An exponent is an integer number with an optional plus or minus sign. Exponential is useful for representing the number which is very large or very small in magnitude.

Example of various valid real constants

0.0045 -.71
+45.203 0.45e3
-0.547 0.78e-4
337. 2.79E4
.478. -4.69E-4

Initialization of Variables

Variables are given initial values, or initialized, when declared. See the following examples :

char abc = 'X';
int marks =77;
float amount = 45.23;

Write initialized variables on a separate line and a comment beside the variable name is a good idea. See the following examples :
int qty; /* quantity of an item */
float value = 12.10; /* purchase value of an item */
int marks; /* marks of a subject */

Previous: C Basic
Next: C Data Types



Share this Tutorial / Exercise on : Facebook and Twitter

C Programming: Tips of the Day

What does [ N ... M ] mean in C aggregate initializers?

It is initialization using Designated Initializers.

The range based initialization is a gnu gcc extension.

To initialize a range of elements to the same value, write [first ... last] = value. This is a GNU extension. For example,

 int widths[] = { [0 ... 9] = 1, [10 ... 99] = 2, [100] = 3 };
 

It is not portable. Compiling with -pedantic with tell you so.

How does it work here?

The preprocessor replaces #include <asm/unistd.h> with its actual contents(it defines miscellaneous symbolic constants and types, and declares miscellaneous functions) in the range based construct, which are then further used for initializing the array of pointers.

Ref : https://bit.ly/2SQE4wm