0% found this document useful (0 votes)
83 views

Lecture 15

The document outlines a lecture on C programming concepts including calculating percentages using arrays, initializing and accessing array elements, bounds checking of arrays, passing array elements to functions by value and reference, and pointer arithmetic. It provides examples of declaring and initializing an array, checking if subscript values exceed the array size, passing array element values and addresses to a function, and incrementing and decrementing pointers.

Uploaded by

Mir Fida Nadeem
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
83 views

Lecture 15

The document outlines a lecture on C programming concepts including calculating percentages using arrays, initializing and accessing array elements, bounds checking of arrays, passing array elements to functions by value and reference, and pointer arithmetic. It provides examples of declaring and initializing an array, checking if subscript values exceed the array size, passing array element values and addresses to a function, and incrementing and decrementing pointers.

Uploaded by

Mir Fida Nadeem
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 10

Today’s lecture outline

• A program to calculate percentage marks


• Array initialization
• Bound checking
• Passing array element to a function
• Pointer arithmetic

1
Marks program

2
Array initialization

3
Bounds Checking
• In C there is no check to see if the subscript used for an
array exceeds the size of the array
• Data entered with a subscript exceeding the array size
will simply be placed in memory outside the array

0 1 2 3 4 5 6 7 8 9

500 504 508 512 516 520 524 528 532 530

• To see to it that we do not reach beyond the array size is


entirely the programmer’s botheration and not the
compiler’s 4
Passing Array Elements to a Function
• Array elements can be passed to a function by
calling the function by value, or by address
• In the call by value we pass values of array
elements to the function
• In the call by reference we pass addresses of
array elements to the function

5
Value of array element pass to a function
0 1 2 3 4 5 6
55 65 75 56 78 78 90
500 504 508 512 516 520 524

ii ==406
2
3
1
5
7
display(marks[6])
display(marks[2])
display(marks[5])
display(marks[3])
display(marks[4])
display(marks[o])
display(marks[1])
display(90)
display(75)
display(78)
display(56)
Program output display(55)
display(65)
55
65
75
56
78
78
90 6
Address of array element pass to a function
0 1 2 3 4 5 6
55 65 75 56 78 78 90
500 504 508 512 516 520 524

ii ==406
2
3
1
5
7
display(&marks[4])
display(&marks[2])
display(&marks[3])
display(&marks[1])
display(&marks[5])
display(&marks[6])
display(&marks[o])
Program output display(508)
display(516)
display(512)
display(504)
display(520)
display(524)
display(500)
55
65 *n 512
520
*n 524
516
504
508
500
75 *(512)
*(508) = 90
*(520)
*(524)
*(516)
*(504)
*(500) 56
78
65
75
55
56
78
78
90 7
Pointer arithmetic
• Addition of a number to a pointer

*j 500
504 *k 516

0 1 2 3 4 5
*j  10
10 20 30 40 50 60
j  500
500 504 508 512 516 520

8
Cont.
• Subtraction of a number from a pointer

*k 504 *j 516
520

0 1 2 3 4 5
10 20 30 40 50 60
500 504 508 512 516 520

9
Points to remember
• Array elements are always stored in
contiguous memory locations.
• A pointer when incremented always points to
an immediately next location of its type
• A pointer when decremented always points to
the immediate previous location of its type
• Comparison between pointers can test for
either equality or inequality

10

You might also like