Really useful programs take in data, perform actions on it and output it somewhere. In C, you use named pieces of memory called variables to store data. C programs can change the data stored in a variable at any time, hence the name. Every variable has an identifier which you can use to refer to it's data when you want to use or change it's value. An expression is anything that can be evaluated i.e. 1 + 1 is an expression of the value 2. In this expression, the plus sign is a binary operator; it operates on two values to create a single value.
The rules for naming a variable are the same as for naming a function, you can use letters, numbers, and the underscore character and the first character must not be a number. Also like functions, variables must be declared before they can be used. The identifier you give to a variable should say what the the variable will be used for, this makes you code much easier to read. You can define your own variables or you can use one of the types already defined for you. Before we get bogged down in terminology let's look at a quick code example to show how simple it all is. In this example we will use two variables of the pre-defined type int.
Example 3-1. bicycles.c
#include <stdio.h> int main() { int number_of_bicycles; int number_of_wheels; number_of_bicycles = 6; number_of_wheels = number_of_bicycles * 2; printf("I have %d bicycles\n", number_of_bicycles); printf("So I have %d wheels\n", number_of_wheels); return 0; }
There are a few new things to look at here, we'll break the program into chunks to explain them.
These two lines each declare a variable. int is one of the built-in data types of the C language. Variables of type int can store positive or negative whole numbers.
This line stores the value 6 in the variable number_of_bicycles. The equals sign is known as "the assignment operator", it assigns the value on the right hand side of it to the variable on the left hand side.
Again, this line uses the assignment operator but it also uses the multiplication operator. The asterisk is another binary operator, it multiplies two values to create a single value. In this case it creates the value 12 which is then stored in number_of_wheels.
printf("I have %d bicycles\n", number_of_bicycles); printf("So I have %d wheels\n", number_of_wheels);
Here we see printf() again but it's being used unlike we have seen before. Here it is taking two arguments which are separated by a comma. The first argument to printf() is known as the format string. When a %d is encountered in the format string printf() knows to expect an extra argument. The %d is replaced by the value of this extra argument. One addition argument is expected for each %d encountered.
With this new knowledge it should be no surprise that when we compile and run this piece of code we get the following:
I have 6 bicycles So I have 12 wheelsAs always, don't worry if you are unsure about certain parts. We'll do plenty more examples.