Pointers & Modular
Programming
Abdallah Karakra
Computer Science Department
Comp 133
Thursday, March 24, 2016
pointer
Pointer or pointer variable: A memory cell that stores the address of a data
item.
The declaration:
float *p; // identifies p as a pointer variable of type pointer to float .
// This means that we can store the memory address of a type
// float variable in p .
Thursday, March 24, 2016
Abdallah Karakra
pointer
Pointer Type Declaration:
SYNTAX:
EXAMPLE:
type * variable ;
float *p;
The value of the pointer variable p is a memory address
Thursday, March 24, 2016
Abdallah Karakra
Example (1)
int y = 5;
int *yPtr;
yPtr = &y; //yPtr gets address of y
yPtr points to y
yPtr
y
5
yptr
500000
600000
y
600000
Address of y
is value of
yptr
Thursday, March 24, 2016
Abdallah Karakra
Example (2)
int i = 5;
int *ptr;
/* declare a pointer variable */
ptr = &i;
/* store address-of i to ptr */
printf("*ptr = %d\n", *ptr);
/* refer to referee of ptr */
output
*ptr = 5
Thursday, March 24, 2016
Abdallah Karakra
Example (3):
What actually ptr is?
ptr is a variable storing an address
ptr is NOT storing the actual value of i
Address of i= 0022FF18
Address of ptr=0022FF1C
int i = 5;
ptr
address of i
int *ptr;
ptr = &i;
printf("i = %d\n", i);
Output:
printf("*ptr = %d\n", *ptr);
printf("ptr = %p\n", ptr);
i = 5
printf("address of i = %p\n", &i);
*ptr = 5
value of ptr =
address of i
in memory
printf("address of ptr = %p\n", &ptr); ptr =0022FF18
address of i = 0022FF18
Thursday, March 24, 2016
address of ptr = 0022FF1C
Abdallah Karakra
Example (4)
Output:
x is 0
*p is 0
x is 1
x is 2
Thursday, March 24, 2016
Abdallah Karakra
Example (5)
Trace the execution of the following fragment
int m = 10, n = 5;
int *mp, *np;
mp = &m;
np = &n;
*mp = *mp + *np;
*np = *mp *np;
printf("%d %d\n%d %d\n", m, *mp, n, *np);
Thursday, March 24, 2016
Abdallah Karakra
Output:
15 15
10 10
Examples
Thursday, March 24, 2016
Abdallah Karakra
Example (6)
Write function to find the sum and the difference between two numbers.
Thursday, March 24, 2016
Abdallah Karakra
Example (7)
Write a function to :
1. Find the number of digits in a given number
2. Sum of digits
3. Reverse a number
Example:
Please enter a number: 123
number of digits = 3
sum of digits=6
reverse=321
Code
Thursday, March 24, 2016
Abdallah Karakra
Example (8)
Exchanges the values of
the two integer variables
Thursday, March 24, 2016
Abdallah Karakra
Example (9)
Identify and correct the errors in the following code fragment, given the
correct output (%p is used to print a pointer):
Thursday, March 24, 2016
Abdallah Karakra
Example (10): Output
The final value of j is 15.
Thursday, March 24, 2016
Abdallah Karakra
Example (11)
C program to find square and cube of given number
Please enter a number : 2
square=4
cube=8
Thursday, March 24, 2016
Abdallah Karakra
Example (12)
code
Output:
num1=2 num2=3 res=0 x=3
num1=2 num2=3 res=4 x=3
num1=2 num2=3 res=6 x=4
Thursday, March 24, 2016
Abdallah Karakra
Question?
Success is the sum of small efforts, repeated day in and day out.
Robert Collier
Thursday, March 24, 2016
Abdallah Karakra
References:
Problem Solving & Program Design in C (main reference)
http://www.programmingsimplified.com/c-program-print-stars-pyramid
Thursday, March 24, 2016
Abdallah Karakra