Sams Teach Yourself C in 24 Hours (15 page)

BOOK: Sams Teach Yourself C in 24 Hours
12.14Mb size Format: txt, pdf, ePub

52

Hour 3

Q&A

Q What is the difference between a constant and a variable?

A
The major difference is that the value of a constant cannot be changed, whereas the value of a variable can. You can assign different values to a variable whenever it’s necessary in your C program.

Q Why do you need a statement block?

A
Many C keywords can only control one statement. A statement block provides a way to put more than one statement together, and put the statement block under the control of a C keyword. Then, the statement block is treated as a single statement.

Q Which arithmetic operators have a higher precedence?

A
Among the five arithmetic operators, the multiplication, division, and remainder operators have a higher precedence than the addition and subtraction operators.

Q How many parts does a function normally have?

A
A function normally has six parts: the function type, the function name, the arguments, the opening brace, the function body, and the closing brace.

Workshop

To help solidify your understanding of this hour’s lesson, you are encouraged to answer the quiz questions and finish the exercises provided in the workshop before you move to the next lesson. The answers and hints to the questions and exercises are given in Appendix D, “Answers to Quiz Questions and Exercises.”

Quiz

1. In the C language, is 74 a constant? How about 571?

2. Is x = 570 + 1 an expression? How about x = 12 + y?

3. Are the following function names valid?

2methods

m2_algorithm

*start_function

Room_Size

.End_Exe

_turbo_add

4. Is 2 + 5 * 2 equal to (2 + 5) * 2?

5. Does 7 % 2 produce the same result as 4 % 3?

05 067231861x CH03 4.10.2000 10:59 AM Page 53

Learning the Structure of a C Program

53

Exercises

1. Given two statements, x = 3; and y = 5 + x;, how can you build a statement block with the two statements?

2. What is wrong with the following function?

int 3integer_add( int x, int y, int z)

{

int sum;

sum = x + y + z;

return sum;

}

3. What is wrong with the following function?

int integer_add( int x, int y, int z)

{

int sum;

3

sum = x + y + z

return sum;

}

4. Write a C function that can perform a multiplication of two integers and return the calculated result.

5. Write a C program that calls the C function you just wrote in Exercise 4 to calculate the multiplication of 3 times 5 and then print out the return value from the function on the screen.

05 067231861x CH03 4.10.2000 10:59 AM Page 54

06 067231861x CH04 4.10.2000 11:00 AM Page 55

HOUR 4

Understanding Data

Types and Keywords

What’s in a name? That which we call a rose

By any other name would smell sweet.

—W. Shakespeare

You learned how to make a valid name for a C function in Hour 3,

“Learning the Structure of a C Program.” Now, you’re going to learn more about naming a variable and the C keywords reserved by the C compiler in this hour.

Also in this hour you’re going to learn about the four data types of the C

language in detail:

• char data type

• int data type

• float data type

• double data type

06 067231861x CH04 4.10.2000 11:00 AM Page 56

56

Hour 4

C Keywords

The C language reserves certain words that have special meanings to the language. Those reserved words are sometimes called
C keywords
. You should not use the C keywords for your own variable, constant, or function names in your programs. Table 4.1 lists the 32

reserved C keywords.

TABLE 4.1

Reserved Keywords in C

Keyword

Description

auto

Storage class specifier

break

Statement

case

Statement

char

Type specifier

const

Storage class modifier

continue

Statement

default

Label

do

Statement

double

Type specifier

else

Statement

enum

Type specifier

extern

Storage class specifier

float

Type specifier

for

Statement

goto

Statement

if

Statement

int

Type specifier

long

Type specifier

register

Storage class specifier

return

Statement

short

Type specifier

signed

Type specifier

sizeof

Operator

static

Storage class specifier

struct

Type specifier

switch

Statement

06 067231861x CH04 4.10.2000 11:00 AM Page 57

Understanding Data Types and Keywords

57

Keyword

Description

typedef

Statement

union

Type specifier

unsigned

Type specifier

void

Type specifier

volatile

Storage class modifier

while

Statement

Don’t worry if you can’t remember all the C keywords the first time through. In the rest of the book, you’ll become more familiar with them and start to use many of the keywords through examples and exercises.

Note that all C keywords are written in lowercase letters. As I’ve mentioned, C is a case-sensitive language. Therefore, int, as shown in the list here, is considered as a C keyword, but INT is not.

The
char
Data Type

4

An object of the char data type represents a single character of the character set used by your computer. For example, A is a character, and so is a. But 7 is a number.

However, a computer can only store numeric code. Therefore, characters such as A, a, B, b, and so on all have a unique numeric code that is used by computers to represent the characters. Usually, a character takes 8 bits (that is, 1 byte) to store its numeric code.

For many computers, the ASCII codes are the
de facto
standard codes to represent a character set. (ASCII, just for your information, stands for American Standard Code for Information Interchange.) The original ASCII character set has only 128 characters because it uses the lower 7 bits that can represent 27 (that is, 128) characters.

On IBM-compatible PCs, however, the character set is extended to contain a total of 256

(that is, 28) characters.

One thing I’d like to mention here is that the ANSI C standard specifies only the value of the null character, which is always zero (i.e., a byte with all bits set to 0.) The other characters’ numeric values are determined by the types of computers, operating systems, and C compilers. You are encouraged to explore the character set of the computer you are using. This can be done with the program in Listing 4.1.

06 067231861x CH04 4.10.2000 11:00 AM Page 58

58

Hour 4

In the computer world, a bit is the smallest unit of data storage, and it can only have one of two values: 0 or 1. These values represent two states of electronic switches used in the computer’s memory and CPU. A byte is a

larger unit than a bit. In fact, eight bits are equal to one byte.

Character Variables

A variable that can represent different characters is called a
character variable
.

You can set the data type of a variable to char by using the following declaration format: char variablename;

where variablename is the name you provide in which to store values of this type.

If you have more than one variable to declare, you can either use the following format: char variablename1;

char variablename2;

char variablename3;

or this one:

char variablename1, variablename2, variablename3;

For example, the following statement declares MyCharacter and sets it to ‘A’: char MyCharacter = ‘A’;

Similarly, the following statements declare x, y, and z as character variables and then assign values to them:

char x, y, z;

x = ‘A’;

y = ‘f’;

z = ‘7’;

Note the last assignment, z = ‘7’, sets z to equal the numeric value representing the character ‘7’ in the character set — not the actual number 7.

You’ll learn more about the character variable and how to use it in your C programs later in this book.

Character Constants

A character enclosed in single quotes (‘) is called a
character constant
. For instance,

‘A’, ‘a’, ‘B’, and ‘b’, are all character constants that have their unique numeric values 06 067231861x CH04 4.10.2000 11:00 AM Page 59

Understanding Data Types and Keywords

59

in a given character set. For instance, you may see the unique numeric values from the ASCII character set.

It is important to remember that character constants are always surrounded by single quote characters (‘) while a string of more than one character uses the double quote (“).

If this sounds confusing, just remember that single quotes go with single characters. You saw an example of double quotes and character strings with the printf() function calls in the previous hour.

From the ASCII character set, you will find that the unique numeric (decimal) values of

‘A’, ‘a’, ‘B’, and ‘b’ are 65, 97, 66, and 98, respectively. Therefore, given x as a character variable, and given the ASCII character set, for instance, the following two assignment statements are equivalent:

x = ‘A’;

x = 65;

So are the following two statements:

x = ‘a’;

x = 97;

Later in this hour you’ll see a program, shown in Listing 4.2, that converts the numeric
4

values back to the corresponding characters.

Don’t confuse x = ‘a’; with x = a;. The first statement assigns the

numeric value of character a to variable x, that is, x will contain the value of 97 (the ASCII value of the letter ‘a’) after the assignment. Statement x = a; however assigns whatever value is contained in variable a into variable x.

You’ll learn more about the difference later in this book.

The Escape Character (
\
)

Actually, you first saw the escape character (\) in Hour 2, “Your First C Program,” when you learned to use the newline character (\n) to break a message into two pieces.

Therefore, the backslash (\) is called the
escape character
in the ASCII character set.

The escape character is used in the C language to tell the computer that a special character follows.

For instance, when the computer sees \ in the newline character \n, it knows that the next character, n, causes a sequence of a carriage return and a line feed.

06 067231861x CH04 4.10.2000 11:00 AM Page 60

60

Hour 4

Besides the newline character, some of the other special characters in the C language are as follows:

Character

Description

\b

The backspace character; moves the cursor to the left one character.

\f

The form-feed character; goes to the top of a new page.

\r

The return character; returns to the beginning of the current line.

\t

The tab character; advances to the next tab stop.

Printing Characters

You already know that the printf() function, defined in the C header file stdio.h, can be used to print out messages on the screen. (Ref. Listing 2.1 in Hour 2.) In this section, you’re going to learn to use the character format specifier, %c, which indicates to the printf() function that the argument to be printed is a character. (You’ll learn more about the format specifier in Hour 5, “Handling Standard Input and Output.” Here, you just get your feet wet.) The important thing to know for now is that each format specifier in the string you pass to printf() will correspond to one of the variables you pass in to the function. Let’s first have a look at the program in Listing 4.1, which prints out characters on the screen.

TYPE

LISTING 4.1

Printing Characters on the Screen

1: /* 04L01.c: Printing out characters */

2: #include

3:

4: main()

5: {

6: char c1;

7: char c2;

8:

9: c1 = ‘A’;

10: c2 = ‘a’;

11: printf(“Convert the value of c1 to character: %c.\n”, c1);

12: printf(“Convert the value of c2 to character: %c.\n”, c2);

13: return 0;

14: }

After the executable file of 04L01.c in Listing 4.1 is created, you can run it to see what will be printed out on the screen. On my machine, the executable file is named as 04L01.exe. The following is the output printed on the screen of my computer after I run the executable:

Other books

Un ángel impuro by Henning Mankell
Forbidden Lord by Helen Dickson
The River Flows On by Maggie Craig
Six Heirs by Pierre Grimbert
Digital Gold by Nathaniel Popper
The Moonstone by Wilkie Collins