C
PROGRAMMING CHAPTER 3
C Programming Tutorial Chapter 3
=============================
Things Covered in Chapter 3
Variables
Rules and Guidelines for Naming Variables
Getting Input from the User
=============================
Finally, a chapter 3! Chapter 4 coming soon.
First of all, I suggest that you go back and revise chapters one and
two.
Chapter two especially has some stuff that you'll need in order to
understand
this chapter.
Chapter 1 can be found at
http://tazforum.thetazzone.com/viewtopic.php?t=6453
Chapter 2 can be found at
http://tazforum.thetazzone.com/viewtopic.php?t=6454
Variables
A variable is a storage space for data. Think of a variable as a kind
of a
suitcase. Just as you store stuff in a suitcase, you store data in a
variable.
Also, just as you can change the contents of the suitcase, you can
change the
contents of a variable as well. That's why it's called a variable. It's
contents can vary. Remember all that discussion about the types of
data, their
ranges and stuff. Well, it might have sounded a bit needless then, but
all that
becomes of vital importance now.
To understand variables better, type this program into your editor and
save it
as var1.c
Code:
/*var1.c A program to demonstrate
the use of different types of variables*/
#include <stdio.h>
void main()
{
char c;
int i;
long l;
float f;
double d;
c='C';
i=1454;
l=345346;
f=34.65;
d=3455667567.2345;
printf("char c
=\t%c\n",c);
printf("int i
=\t%d\n",i);
printf("long l
=\t%2d\n",l);
printf("float f
=\t%f\n",f);
printf("double d
=\t%2f\n",d);
}
Save the program as var1.c. Compile. Fix any errors that crop up. Run.
This program shows you that there are five types of variables in C, one
for
each
type of data. And just so you know, int can also be written as short
and short
int while long can also be written as long int. Usually these names
aren't
used, but they exist and you should know about them.
There's really nothing new in this program except for the variables.
Taking the suitcase analogy further, you have to use a variable of the
appropriate size to store any give data. Just as you can't use a small
suitcase
to store tons of stuff, you can't use a char variable to store stuff
that can
only be stored in an int. Also, it obviously doesn't make sense to use
a large
suitcase to carry just one set of clothes and nothing else. Similarly,
it
doesn't make sense to use a float to store something that could have
easily
been
stored in an int.
Look at the list below to see the types of variables in C.
Type Size Range
char 1 byte -128 to +127
int 2 bytes -32768 to +32767
short 2 bytes -32768 to +32767
short int 2 bytes -32768 to +32767
long 4 bytes -2147483648 to +2147483647
long int 4 bytes -2147483648 to +2147483647
float 4 bytes 3.4*10^-38 to 3.4*10^+38
double 8 bytes 1.7*10^-308 to 1.7*10^+308
Note: Some compilers have doubled the number of bytes used to store
variables,
so that a char uses 2 bytes, an int uses 4 and so on... This leads to a
corresponding increase in range.
And of course, any variable can be declared as unsigned in C to double
it's
positive range while removing it's negative range.
Now, you might be wondering, what happens to a variable if you exceed
the
allowed range? Well, it's quite simple. The counting starts from the
minimum
value all over again. So, say you have a char variable having the value
of 127
and you add 1 to it, the new value of the variable is now -128.
Note: This may not apply to your compiler because some compilers just
keep the
value at the maximum value when you try to exceed the range of the
variable.
(For example gcc 2.96)
Rules and Guidelines for Naming Variables
The rules for naming variables are as follows:
1) A variable name MUST start with an alphabet.
2) A variable name cannot contain special characters. (To be safe stick
to
alphabets, numbers and _ )
3) A variable name cannot contain spaces.
4) Duplicate variable names are NOT allowed, even if the variables they
refer to
are of different types.
5) A variable name may not be the same as one of the reserved keywords
of the C
language (words like int, void, etc)
6) Variable names (as everything else in C) are case sensitive so
Variable,
VARIABLE, variable and VaRiAbLe are different.
While these are the rules for naming variables, it is also helpful to
follow
certain guidelines while naming variables. Some of the guidelines I
follow are:
1) Use descriptive names for your variables. For example, "prompt" is
better
than "p".
2) Do not use the same name just by changing the case. For example,
don't use
"Prompt" and "prompt" in the same program.
3) Do not give variables the same names as functions. For example,
don't name a
variable "printf". It leads to major confusion.
You'll pick up certain other habits as you go along that'll help you a
lot. Feel
free to add them to this list.
Getting Input from the user
If you've ever used a DOS or *NIX program before, you'll know that
getting user
input is very important for any program to run. It isn't as obvious
when using
Windows, but yes, user input is vital even for most Windows programs.
Face it,
if we weren't able to give input to programs, how would we get them to
do what
we wanted? One of the most popular ways to get input from the user is
to use
the
scanf() function. scanf stands for scan formatted (just as printf
stands for
print formatted). It's very similar to printf in the sense that it
understands
the same placeholders that printf does. Type this program into your
editor and
save it as input1.c
Code:
/*input1.c A program to demonstrate
use of the scanf() function to get user input*/
#include <stdio.h>
void main()
{
int i;
printf("Enter a number:
");
scanf("%d",&i);
//remember the ampersand(&) here
printf("\nYou entered
%d\n",i);
}
Save. Compile. Fix errors. Run.
The only new things in this program are in line 6 where you use scanf()
and the
// thing. The // thing is a comment. It's known as a C++ style comment
and
there's no need to close it. It automatically ends at the end of the
line.
The scanf statement is simple too. The %d tells it to expect an int
after the
ending quote. The only thing different with using placeholders in scanf
is that
you have to put in an ampersand(&) before the variable name. If you
don't do
that, you get a wierd error (under gcc it's "Segmentation Fault").
Also, when
using scanf it is VERY important to see that the placeholder is the
same as the
type of variable.
Another way of getting input is a function called getchar(). As the name
suggests, getchar() is used to get character input from the users.
getchar() is
usually used to get input when you need to get a y/n answer from the
user.
Type this program and save it as input2.c
[code]
/*input2.c A program to demonstrate
use of getchar()*/
#include <stdio.h>
void main()
{
char prompt;
printf("Yes or No (y/n)?");
prompt=getchar();
printf("You said %c\n",prompt);
}
The good thing about the getchar() function used in this program is
that unlike
scanf, it isn't clunky. There's no ampersand or percent, just a simple
equals(=)
sign.
That's it for this chapter. See you next time. Here's some assignments
to tide you over until then.
1) Change input1.c so that it reads a float value from the user. Make
the
corresponding changes to printf.
2) Toy around with scanf() (remove the ampersand and other such
mischiefs) and see what happens.
Cheers,
cgkanchi
Original Tutorial
by cgkanchi for TheTAZZone-TAZForum
Originally posted on April 19th, 2007 here
Do not use, republish, in whole or in part, without the consent of
the Author. TheTAZZone policy is that Authors retain the rights to the
work they submit and/or post...we do not sell, publish, transmit, or
have the right to give permission for such...TheTAZZone merely retains
the right to use, retain, and publish submitted work within it's
Network.

