Escolar Documentos
Profissional Documentos
Cultura Documentos
INTRODUCTION TO C
PROGRAMMING
PROGRAMME
COURSE
CREDIT HOUR
SEMESTER
PRE-REQUISITE
STATUS
CONTACT HOUR
SYNOPSIS
This course provides an introduction to C programming and its application in
solving simple engineering problems.
OBJECTIVES
Upon completion of this course, the students will be able to:
To develop algorithms and program the solutions to simple engineering
problems.
To understand the programming concepts required to implement the
solution in C programming language.
2
COURSE EVALUATION
Coursework
1. Lab/assignments
2. Test (2)
3. Mini Project (1)
Total Marks
Percentage
20%
50%
30%
100%
TEXT BOOK
DEITEL & DEITEL (Latest Edition). C How To Program by PEARSON/ Prentice Hall
REFERENCES
1. Jeri R. Hanley, Elliot B. Koffman, `C Program design for Engineers`, 2nd Edition,
Addison Wesley, 2000.
2. Pradip Dey & Manas Ghosh, `Computer Fundamentals and Programming in C`,
Oxford University Press, 2006.
3. H. M. Dietel & P.J. Dietel, `C How to Program`, Prentice Hall, 2004.
4. Behrouz A. Forouzan & Richard F. Gilberg, `A Structured Programming Approach
Using c`, Brooks/Cole, 2001.
3
WEEK
CHAPTER
CONTENT/SUB-CHAPTER
INITIAL CONCEPT
1.1 Introduction to programming languages,flowchart
1.2 Producing an executable program (compiling and linking)
1.3 Constants, variables and data types(int, float,string,char)
1.4 Operators and precedence
1.5 Data type conversion
1
(2 hours)
1
INTRODUCTION TO C PROGRAMMING
2-3
(4 hours)
2
INPUT AND OUTPUT OPERATION
4
(2 hours)
3
CONTROL FLOW
5
(2 hours)
3
CONTROL FLOW
6
(2 hours)
3
CONTROL FLOW
4
FUNCTIONS
7
( 2 hours)
4
FUNCTIONS
5
SIMPLE ARRAY
FUNCTIONS
4.4 Function call
4.5 Recursive function
SIMPLE ARRAY
5.1 Array declaration and syntax
8
(2 hours)
5
SIMPLE ARRAY
SIMPLE ARRAY
5.2 One and two dimensional array
9
(2 hours)
6
POINTER
INTRODUCTION TO POINTER
6.1 Pointer declaration and synatx
6.2 call by value and call by referance
10
(2 hours)
6
POINTER
INTRODUCTION TO POINTER
6.3 Using pointer with functions and array
11
(2 hours)
7
STRUCTURES
TEST 1
STRUCTURE
7.1 Structure declaration and syntax
7.2 Structure initialization
7.3 Pointers to structure
TEST 2
12
13
14
Chapter 1
Introduction to C Programming
5
LESSON OUTCOME
At the end of the lesson, students should be able to
describe and explain:
Introduction to C Programming Language
Development Stages of C Program
Flowchart
Variables and Data types
Keywords and Constants
Operators and precedence
Data type conversion
6
What is a program?
A list of instructions.
Written in a programming language (c, c++, java).
Determines the behavior of a machine
(computer, robot).
Programming Language
A machine language that has its own set of
grammatical rules.
It is used to instruct a machine to perform
specific tasks.
History
C was developed in 1972 by Dennis Ritchie at
Bell Laboratories.
Based on a programming language called B
(which is derived from BCPL language).
C was designed and developed for the
development of UNIX operating system.
C has been widely used to develop many type
of application software from a basic to
operating system.
9
Christopher
Strachey
Uni. Cambridge
& Uni. London
Complex thus
not popular
Martin Richards
Powerful and
Portable
One data type
B
Ken Thompson
& Dennis Ritchie
Bell Labs
One data type
1972
BCPL
1969
CPL (Combined
Programming
Language)
1966
1963
History
C
Dennis Ritchie
at Bell
Laboratories
Based on a
programming
language called
B
Designed and
developed for
the
development of
UNIX operating
system
10
11
12
Editing
Process of writing the C source code.
Using editor program (i.e. vi and emacs for
Linux, Notepad for Windows)
Software package provides programming
environment
Integrated editor
Managing and maintaining source code
i.e. C++ Builder, Code::Blocks, Dev-C++, Microsoft
Visual Studio
13
14
Linking
Process of combining generated object files.
Add required codes from C standard library.
Produce an executable file.
15
Executing
Run the program to check whether it produce
the desired output.
Testing stage where you check the output of
your program.
The program does not produces the suppose
output, then you have made logic (semantic)
error.
16
C Program Layout
C program consists of two sections:
Pre-processor directives
Main function
pre-processor directives
main()
Pre-processor section
{
Main function section
statements
}
17
Pre-processor Directives
Specify what compiler should do before
compilation.
Include header files.
Header file keep information about the library
functions (printf, scanf).
Pre-processor directives begins with the #
symbol.
18
Main Function
The program starts its execution.
Define the program definition.
19
An Example of C Program
Sample output:
C program example
20
Additional - Comments
A comment, not actually part of the program.
Provide information on what the program
does.
Begin with /* and end with */ or written as
//.
Good habit to include comments.
Keep inform what are the code actually doing.
21
Important line in C
Symbol # indicates that this is a pre-processor
directive
Include stdio.h header file in our program
stdio.h contains information on
input/output routines.
We are using the printf() function from
stdio.h
22
23
24
25
26
Flowchart
Basic shapes of flowchart
point / terminal
data / process
decision / option
yes
Flowchart
Sequence flow
start
Boil water
Coffee = 1 spoon
Sugar = 2 spoon
Pour coffee and
sugar into a cup
Add water
Display coffee is
ready
end
28
start
Flowchart
Boil water
Looping flow
Pour coffee into a
cup
Add sugar
Add water
yes
Over sweet?
no
end
29
Flowchart
Combination
flow
start
A
Boil water
end
no
Over sweet?
yes
Add water
end
no
Tasteless?
yes
Add sugar
30
Exercise
Draw a flowchart to solve below problem:
Prepare cupcakes. Ingredients are flour, yeast,
and sugar. Make sure you taste the dough
before baking process.
Find solution to calculate the average marks for
100 of student. Then, display the average value.
31
Variables
Every variable has name, type and value.
Variable name / Identifier :
Must start with character or underscore ( _ ), cannot
start with number or symbol and not a keyword .
Must not include any space and it is letter case sensitive.
Eg:
stud1, Stud1, stud_name, _student (valid)
@stud, stud name, 1stud (invalid)
Variable type :
Based on the data type integer, floating point numbers
and characters.
The value can be change any time.
Whenever a new value is placed into a variable, it
replaces the previous value.
Variables
Variable must be declare / initialize before it can be used
in the next line of statements.
Variable declaration :
To declare a variable with a name and suitable data
type.
Eg:
int student; int staff;
double x, y;
Variable initialization :
To declare a variable and assign a certain value to the
varible.
Eg:
int student=5; int staff=1;
double x=1.12;
double y=9.999;
Data Types
Integer:
Whole number (decimal).
Positive, negative or zero : 25, 0, -9.
Variable declaration: int x;
Floating point numbers:
double / float
Variable declaration: double y;
float z;
Characters:
A character is a single letter, digit, symbol or space. Eg:
m,B,#,3,=,@, .
A string is series of characters .
Eg:
student ,F#,$35,
class_93,ALI BABA.
Keywords
Special words reserved for C.
Cannot be used as variable names.
Eg: data types (int,void,const,static)
instruction statements (if,for,case,
break,return,include)
Constants
Constant name is declared just like variable name.
Constant value cannot be changed after its declaration.
2 ways for constant declaration :
const double pi = 3.147; or
#define pi 3.147
Assignment Operator
Arithmetic Operators
Operators
Symbol
Addition
Substraction
Multiplication
Division
Modulus
Relational Operators
Operator
Symbol
Less than
<
>
Greater than or
equal to
>=
Equal to
==
Not equal to
!=
Also
known as
Equality
Operators
Logical Operators
Operators
Symbol
NOT
AND
&&
OR
||
Expression
Value
!1
!0
Expression
Value
0 && 0
0 && 1
1 && 0
1 && 1
Expression
Value
0 || 0
0 || 1
1 || 0
1 || 1
Increment and
Decrement Operators
Increment operator ++
add 1
Increment and
Decrement Operators
Example
y
int y,c,x;
y=5,c=1,x=3;
c++;
x+=2;
--y;
y=c++;
y=++x;
(in memory)
42
Operator Precedence
Highest Precedence / Priority
parenthesis,
logical op.
( ) !
arithmetic op.
* / %
arithmetic op.
+ -
relational op.
equality op.
== !=
logical op.
&&
logical op.
||
Operator Precedence
Example 1
7 % 3 + 4 * 2 (1 + 12) / 4
Example 2
x > 5 || y < 7 && z != 2
let x=4 ,y =5,z=9.
Exercise
What data types would you use to hold the
following data?
Customer name
Your house number
A price
Car registrations
The time
A six digit number
Write C statements to declare them all.
45
Exercise
What value is assigned to each variable during
the execution of each line of statement?
Fill in the blank memories.
num1
num2
num3
46
Chapter 2
LESSON OUTCOME
At the end of the lesson, students should be able to
describe and explain:
Input and Output Devices
printf statement
scanf statement
Field Widths and Precisions
Printing Literals and Escape Sequences
48
49
50
printf
display the
data at the
monitor
scanf
51
Printing Integers
Integer
Whole number (no decimal point): 25, 0, -9
Positive, negative, or zero
Only minus sign prints by default
53
Printing Integers
Conversion Specifier Description
d
o
u
x or X
54
55
Description
Read an optionally signed decimal integer. The corresponding
argument is a pointer to integer.
Read an octal integer. The corresponding argument is a pointer to
unsigned integer.
Read a hexadecimal integer. The corresponding argument is a
pointer to unsigned integer.
Read a floating-point value. The corresponding argument is a
pointer to a floating-point variable.
58
59
int x = 123;
printf(%2d, x) output:123
printf(%5d, x) output: 123
printf(%-5d, x) output:123
printf(%.5d, x) output:00123
printf(%7.5d, x) output:00123
62
float y = 4.56;
printf(%2f, x) output:4.56
printf(%9f, x) output: 4.560000
printf(%-9f, x) output:4.560000
printf(%.4f, x) output:4.5600
printf(%.1f, x) output:4.6
printf(%6.3f, x) output: 4.560
63
char a = Z;
char b[] = ZOO;
printf(%2c, a) output: Z
printf(%-2c, a) output:Z
printf(%2s, b) output:ZOO
printf(%5s, b) output: ZOO
printf(%-5s, x) output:ZOO
64
65
\"
\?
\\
\a
\b
\f
\n
\r
\t
\v
66
Exercise
Write a statement to accomplish each of the following:
i. Define the variables x, y, z and result to be of type
int.
ii. Prompt the user to enter three integers.
iii. Read three integers from the keyboard and store
them in the variables x, y and z.
iv. Compute the product of the three integers
contained in variables x, y and z, and assign the
result to the variable result.
v. Print the result.
67
Chapter 3.1
Selection Structure
68
LESSON OUTCOME
At the end of the lesson, students should be able to
describe and explain:
if statement
if else statement
if else if statement
Nested if structure
switch case statement
69
Introduction
Ability to change the flow of program
execution.
Allows the program to decide an action based
upon user's input or other processes.
70
if Statement
Primary tool of selection structure.
The condition is TRUE execute the
statement.
The condition is FALSE skip the
statement.
71
if Statement
if ( condition )
Execute this statement if
condition is TRUE
i.e.
if (5 < 10)
printf("Five is less than ten");
72
Example
Sample output:
Enter a number between -10 and 10: 6
6 is a positive number
73
if else Statement
Execute certain
statement if the
condition is false
The condition is TRUE
execute the statement A
The condition is FALSE
execute the statement B
74
if else Statement
if ( condition )
Statement A;
else
Statement B;
i.e.
if ( 5 < 10 )
printf("Five is less than ten");
else
printf("Five is greater than
ten");
75
Example
Sample output:
Enter a number between -10 and 10: -2
-2 is a negative number
76
if else if Statement
Test additional conditions
Works the same way as normal if statement
77
Example
Sample output:
Please enter your age: 58
You are old
78
Statement N
}
79
Nested if Structure
if within an if is called
nested if
if ( condition 1 )
Statement A;
if ( condition 2 )
Statement C;
else
Statement D;
else
Statement B;
80
Example
Sample output:
Enter a number between -10 and 10: 6
6 is a positive number
6 is an even number
81
82
Statement B;
break;
...
default:
Statement N;
break;
}
83
Example
84
Exercise
Write a program that asks the user to enter two
integers, obtains the numbers from the user, then
prints the larger number followed by the words
is larger. If the numbers are equal, print the
message These numbers are equal. Use only
the single-selection form of the if statement you
learned in this chapter.
Draw a flowchart for this task:Obtains two integer numbers from the keyboard,
and display which is larger of the two numbers.
85
Exercise
Using switch and case statement, write a
program determine whether the number we
key in is odd or even and that print out
adjacent * sign same as that number.
(Example: For number 6, we will print out
****** ).
86
Chapter 3.2
Repetition Structure
87
LESSON OUTCOME
At the end of the lesson, students should be able to
describe and explain:
while loop
do while loop
for loop
Nested Loop
Infinite Loop
break and continue Statements
88
Introduction
What if we want to display numbers from 1 to
100?
What if we want to repeat a thousand times of 10
statements?
It is possible to do it, but it is not a convenience
and it would take a long time to complete
Ability to specify repetition of compound
statements is as important in programming
Loop
89
Introduction
Two types of loop:
Finite loop
Infinite loop
Introduction
Three requirements of defining a definite loop
1. counter initialization
2. counter
3. loop condition
91
while Loop
Allows the repetition of a set
of statements execution to
continue for as long as a
specified condition is TRUE
When the condition becomes
false, the repetition
terminates
92
while Loop
while ( condition ) {
statements;
}
while ( a < b ) {
printf("a is less than b\n");
}
93
Example
Test the condition
Execute statements within
while loops block
Jump back to the top and retest the condition
94
Example
Sample output:
0
1
2
95
do while Loop
Condition is tested at the end of
the block instead of at the
beginning
Block will be executed at least
once
96
do while Loop
do {
statements;
} while ( condition );
do {
printf("a is less than b\n");
} while ( a < b );
97
Example
Execute statements within do
while loops block
Test the condition
Jump back to the top and reexecute statements
98
Example
Sample output:
0
1
2
99
for Loop
for loop combines the loop control
parameters into single statement
Loop control parameters variable
initialization, variable update and loop
condition
100
for Loop
for ( a; b; c ) {
statements;
}
a (variable initialisation) is evaluated once only before entering the loop
b (condition) determines whether or not the
program loops
c (variable update) is evaluated after an iteration
of the loop loop counter
101
Example
Initializes count equals
to zero
Test the condition
Execute statements
within for loops block
Jump back to the top
and re-test the
condition
102
Example
Sample output:
0
1
2
103
Nested Loop
A loop within a loop
Loop1
Loop2
statement
return
return
104
Example
Sample output:
11
23
36
105
Infinite Loop
Loops forever
Contains no condition
Condition that can never be satisfied
106
Example
107
108
Example
Causes an immediate exit from that
statement
Example
Skip the remaining statements
Performs the next iteration of the loop
110
Exercise
1. Use a loop to produce the following output:
a) 12345678910
b) 3, 8, 13, 18, 23
c)
20, 14, 8, 2, -4, -10
Chapter 4
Functions
112
LESSON OUTCOME
At the end of the lesson, students should be able to
describe and explain:
Introduction to function
Function Prototype
Function Definition
Calling Function
Scope and Global Variables
Recursive Function
113
Introduction
Mini-program where a group of statements
are executed.
Programmer-defined functions.
Break a large program into smaller sets of
statements according to their tasks.
114
Benefits of Function
To make program more manageable
divide-and-conquer approach (construct a
program from smaller components/modules.
Software reusability
reuse existing functions for new programs
115
116
Sequence of Execution
117
3 Elements of Function
1. Function prototype / declaration
2. Function definition
3. Calling function
118
Function Prototype
To declare function if the function definition is
written below the main function.
Otherwise, no need function prototype.
(function definition above the main function)
Almost similar with function definition header,
but must be written before the main function
with semicolon at the end of statement.
119
Function Prototype
return_value_type function_name(parameter_list);
Function Definition
Specifies the specification of a function
return value type, function name, arguments.
121
Function Definition
return_value_type function_name(parameter_list)
{
statements;
}
function body
function header
122
Function Definition
return_value_type function_name(parameter_list)
{
statements;
}
Specifies the type of the value returned by the function
Data types of return value : int (default), char, float, double
If function does not has any return value : void
Calling Function
Two ways to invoke/call function
Call-by-value
Call-by-reference.
124
Call-by-value VS Call-by-reference
Call-by-value
Call-by-reference
Copies of the
References of
arguments value are
the arguments
made and passed to the value are passed
called function
to the called
function
Changes to the copy do
not effect an original
Called function
variables value
can modify the
original
Available in C language
variables value
Possible to
simulate
125
Example 1
#include<stdio.h>
void function_name(void);
Function prototype
int main() {
statements;
function_name();
Calling function
return 0;
}
Function definition
void function_name(void) {
statements;
}
126
Example 2
#include<stdio.h>
double function_name(int,double);
Function prototype
int main() {
int p1, double p2;
statements;
function_name(p1,p2);
return 0;
Calling function
}
Example 3
Sample output:
Call-by-value
Before func1 is called
n1 = 5
In func1
n1 = 10
After func1 is called
n1 = 5
128
Example 4
Sample output:
function prototype
Enter base and power: 5 4
The result is 625.
function call
function definition
129
Scope Variable
Variables declared in function main() are
known only within function main() not
accessible outside of the block
It is applied to variables defined within a block
that is inside other block
But variables defined in the outer block are
accessible in the inner block
130
Scope Variable
Variable a is declared in
main()
Variable b is declared
within while loop block
(inner block)
a is the outer block
variable therefore it is
accessible within inner
block
b is not accessible in the
outer block because it is
while loop variable
131
Scope Variable
num2 is declared in main()
132
Global Variable
Variables declared outside any function is
called global variables
Global variables are variables that can be
accessed in any function
Normally they are declared before function
main()
133
Global Variable
num2 is a global variable
134
Recursive Function
Function that calls itself either directly or
indirectly through another function
135
Example 5
Sample output:
0! = 1
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
136
Exercise
Write a program that utilizes a function with
parameters. The program reads 3 integer
numbers from the user and sends the 3 input
to the function. The function finds the
smallest value between the 3 integer numbers
and return the value to the main function.
Enter three inter numbers:
30
80
20
Smallest value: 20
137
Exercise
Consider the following program, what is the
value of num1 and num2 after each statement
is executed?
138
num1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
num2
void funcA(int);
int funcB(int);
int num2 = 2;
int main(void)
{
int num1 = 1;
num2 = funcB(num1);
funcA(num1);
funcA(num2);
return 0;
}
void funcA(int num1)
{
num1 = num1 + num2;
num2 = num1 + num2;
}
int funcB(int num1)
{
num1 = num1 + num2;
return num1;
}
139
Chapter 5
Arrays
140
LESSON OUTCOME
At the end of the lesson, students should be able to
describe and explain:
Introduction to Array
Array Declaration and Initialization
Using Arrays
Character Arrays
Using Character Arrays
Passing Entire Array to Function
Passing Element of Array to Function
Two Dimensional Array
141
Introduction
A group of memory locations that have the
same name and the same type.
Allows to store a sequence of values.
142
Introduction
First element in an array is the
Name of array
zeroth element, a[0]
In the example to the right:_
a[0]
-50
a[1]
6
Second element is a[1]= 6. Element
a[2]
11
a[3]
0
two is a[2]=11. Different way of
a[4]
671
a[5]
-34
statement resulting in different
a[6]
8
meaning!
a[7]
73
a[8]
1
If b=2 and c=4, then
a[9]
5
a[b+c] =a[b+c]+2;
Position number
(subscript) of the element
in array a
a[2+4] =a[2+4]+2;
a[6] = a[6]+2;
a[6] = 10;
int a[5];
int a[5] = {0};
//all elements equal zero
int a[5] = {10, 20, 30, 40, 50};
int a[5] = {10, 20, 30, 40, 50, 60}; //error
float a[5] = {1.1, 2.2, 3.3, 4.4, 5.5};
char a[6] = {'h', 'e', 'l', 'l', 'o'};
Note: a[5] carries the value /0, more on
this later.
144
Example
145
Using Arrays
Declare an integer array named a with 10 elements
int a[10];
146
Character Arrays
Store characters
Character arrays are capable of storing strings
Revise: %c for characters ( eg. A, b, c, D )
%s for strings ( eg. hi, welcome, good )
147
Character Arrays
char string[]="hello";
Initializes the elements of array string to the
individual characters in the string hello
string "hello" has 5 characters plus a special string
termination character called null character '\0'
148
Character Arrays
char x[]={'h', 'e', 'l', 'l', 'o', '\0'};
x[0] = 'h'
x[1] = 'e'
x[2] = 'l'
x[3] = 'l'
x[4] = 'e
x[5] = '\0'
149
Example
151
152
//array declaration
//function prototype
}
the passed array
func(array)
//call function
153
154
func(array[5])
155
Example
156
157
1st Row
2nd Row
158
Row 0
Col 0
b[0][0]
Col 1
b[0][1]
Col 2
b[0][2]
Col 3
b[0][3]
Row 1
b[0][0]
b[0][0]
b[0][0]
b[0][0]
Row 2
b[0][0]
b[0][0]
b[0][0]
b[0][0]
Column index
Row index
159
Example
160
Exercise
Write a program to print the values of each
element of a 3-by-2 array using nested loop..
Initialize the array as:
{12.0,14.2},{13.0,16.5},{10.5,11.0}
161
Chapter 6
Pointers
162
LESSON OUTCOME
At the end of the lesson, students should be able to
describe and explain:
Introduction
Pointer Declaration and Initilization
Using Pointers
Call-by-reference
Pointers and Arrays
Arrays of Pointers
163
Introduction
Pointers are variables whose values are
memory addresses
A pointer contains an address of a variable
that contains a specific value
164
Introduction
Count directly
references a variable
that contains the value
5
Pointer indirectly
references a variable
that contains the value
5 (indirection)
count
Pointer
count
yPtr
y
5
Location
50000
Location
60000
Using Pointers
* (indirection) operator returns the value of
the object a pointer refers to
Assume y = 5
yPtr = &y;
z = *yPtr + 5;
*yPtr = 7;
z = *yPtr + 5;
yPtr = &z;
167
Example
168
Example
169
Call-by-reference
The original variable address is passed to the
function by using & operator.
Ability to access the variables directly and to
modify them if required.
170
Example
num1 = 3 - before
Value returned: 9
num1 = 3 - after
num2 = 5 - before
num2 = 25 - after
a pointer
numRef = numRef * numRef
171
172
bPtr bPtr+1
b
0
Arrays of Pointers
Since pointers are variables
Can be stored in arrays
Array of memory addresses
174
Example
Sample output:
3
5
10
175
176
Example
177
Exercise
Consider the following statements, what is the
value of px and py after each statement is
executed?
178
px
1
2
3
4
5
6
7
8
9
10
py
int x, y, z;
int *px, *py, *pz;
x = 5;
y = 10;
px = &x;
py = &y;
z = 15;
py = &z;
px = py
Given:
address x = 0 x 00FC24BB
address y = 0 x 00AACCDD
address z = 0 x 00EE58FA
179
Chapter 7
C Structures
180
Definition
A structure or struct is a collection of
variables under a single name.
These variables can be of different types, and
each can be accessed by its name.
Variables in a struct are called members or
fields. A structure may include arrays, pointers
and another structure as its member.
181
Declaration of struct
Normally, a struct is defined before the main
function.
Declaring a struct requires the struct
keyword, followed by a name.
Then the collection of variables is declared
between a pair of curly bracekets.
The closing bracket must be followed by a
semi colon.
182
General
struct struct_tag_name
{
type field_name1;
type field_name2;
};
Example
struct employee {
char name[20];
int salary;
};
183
General
struct struct_tag_name {
type field_name1;
type field_name2;
} struct_var1,struct_var2;
Example
struct employee {
char name[20];
int salary;
} Employee1, Employee2;
struct {
type field_name1;
type field_name2;
} struct_var1,struct_var2;
Example
struct {
char name[20];
int salary;
} Employee1, Employee2;
184
Example
struct employee {
char name[20];
int salary;
};
main ( ) {
struct employee Employee1, Employee2;
.
.
185
186
188
name :
salary
name :
salary
%s \n", employee[0].name);
: %d \n", employee [0].salary);
%s \n", employee[1].name);
: %d \n", employee [1].salary);
Or using loop
for (i=0;i<3;i++)
{
printf(" name : %s \n", employee[i].name);
printf(" salary : %d \n", employee [i].salary);
}
189
Pointing to structures
A pointer can be a member of a structure.
It is used to refer to a struct by its address.
The pointer stores the memory address of a
structure variable.
Use arrow operator (->) to access the
structure members/fields.
190
#include <stdio.h>
struct data {
int id;
char *name;
char *address;
};
int main() {
struct data employee, *stPtr;
stPtr = &employee;
//Pointing to structure variable employee
stPtr->id = 1;
// Accessing the structure field
stPtr->name = "Alina";
// (*strPtr).name = Alina can also be used
stPtr->address ="Penang";
printf("Employee Information:\n");
printf("id=%d\n %s\n %s\n", stPtr->id, stPtr->name,stPtr->address);
return 0;
}
191
Exercise
Declare a structure named data that consists
name, age, weight and height as its field
members. Declare a structure variable named
people[3].Then write a program that
calculate the Body mass index (BMI) of 3 the
people. Use this BMI formula:
BMI= weight/(height x height)
192