0% found this document useful (0 votes)
142 views29 pages

Pointers

The document provides an overview of pointers in C programming. It discusses declaring and initializing pointers, dereferencing pointers, pointer arithmetic, and using pointers to access array elements. Examples are provided to demonstrate how pointers store the address of a variable and can be used to modify the value of that variable or traverse an array. Pointer concepts like NULL pointers and pointers to pointers are also explained.

Uploaded by

Hindhupriya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
142 views29 pages

Pointers

The document provides an overview of pointers in C programming. It discusses declaring and initializing pointers, dereferencing pointers, pointer arithmetic, and using pointers to access array elements. Examples are provided to demonstrate how pointers store the address of a variable and can be used to modify the value of that variable or traverse an array. Pointer concepts like NULL pointers and pointers to pointers are also explained.

Uploaded by

Hindhupriya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 29

Powerpoint Templates Page 1

MODULE 2
 Pointers
 pointers to array
 Pointer and functions
 Pointer to strings
 Array of pointers
 pointers to pointers
 Dynamic memory allocation

Powerpoint Templates Page 2


Introduction
• Pointers are variables that hold address of another variable of
same data type.
• Benefits:
Pointers are more efficient in handling Array and Structure.
Pointer allows reference to function and thereby helps in
passing of function as arguments to other function.
It reduces length and the program execution time.
It allows C to support dynamic memory management.

Powerpoint Templates Page 3


Concept of Pointer

Powerpoint Templates Page 4


Operators used in Pointers

Dereferencing Address

(Value of)
&(Address of)

Powerpoint Templates Page 5


Int i=3;

Address of ‘i’ Value of ‘i’

‘&i’ variable
i
‘*i’
3
(Value of i)

X1000 x1004 x1008 x100c x1010 x1014

Address of i
The value ‘3’Powerpoint
is saved in the memory location ‘x100c’
Templates Page 6
Declaring a Pointer
• General syntax of pointer declaration is
data_type *pointer_name;
• Rule:
Data type of pointer must be same as the variable, which the
pointer is pointing.
• Note:
void data type pointer works with all data types, but its not used
oftenly.

Powerpoint Templates Page 7


Initialization of Pointer variable
• Pointer initialization is the process of assigning address of a
variable to pointer variable.
Pointer variable contains address of variable of same data type.
In C language, address operator & is used to determine the address of a
variable.
int a = 10;
int *ptr; //pointer declaration
ptr = &a; // pointer initialization
• Note:
 Pointer variable always point to same type of data.

Powerpoint Templates Page 8


• There are two unary operations to consider.
• The * operator: If ptra is a pointer variable, then∗ ptra
gives you the content of the location pointed to by ptr.
• The & operator: If v is a variable, then &v is the address of the
variable.

Powerpoint Templates Page 9


Dereferencing of Pointer
• Once a pointer has been assigned the address of a variable, to access
the value of variable
The pointer is dereferenced, using the indirection operation *

int a, *p;
a = 10;
p = &a;
printf(“%d”, *p);
printf(“%d”, *&a);
printf(“%u”, &a);
printf(“%u”, p);
printf(“%u”, &p);
Powerpoint Templates Page 10
Dereferencing Operator *
• We can access to the value stored in the variable pointed to by using the dereferencing
operator (*),

Memory address: 1020 1024 1032

… 88 100 … 1024 …
a p
int a = 100;
int *p = &a; Result is:
cout << a << endl; 100
cout << &a << endl; 1024
cout << p << " " << *p << endl; 1024 100
cout << &p << endl; 1032

Powerpoint Templates Page 11


Lets Take an Example and See how pointers work

#include<stdio.h>
Void main()
{
Int i=3;
Int *j;
j=&i;
Printf(“i=%d”i);
Printf(“*j=%d”*j);
} Powerpoint Templates Page 12
Int i=3; Create an integer variable ‘i’ and initialize it to 3

Int *j; Create a pointer variable ‘j’- create value of ‘j’

j = &i; Initialize the pointer value of ‘j’ to the address of ‘i’

variables
Int *j Int i

M
e 3
m x100c
or
y

X1000 x1004 Powerpoint Templates


x1008 x100c x1010 x1014
Page 13
Output screen
Printf(“i=%d” i);
Printf(“*j=%d” *j);
i=3
We know j=&i *j=3

So  *j=*(&i) value of (address of i)


(i.e.) value in address (x100c)

Int *j Int i

M
e 33
m x100c
or
y
X1000 x1004 x1008
Powerpoint Templates x100c x1010 x1014
Page 14
Example : Sum of two numbers using Pointers
#include <stdio.h>
main()
{
int first, second, *p, *q, sum;
printf("Enter two integers to add\n");
scanf("%d%d", &first, &second);
p = &first;
q = &second;
sum = *p + *q;
printf("Sum of entered numbers = %d\n",sum);
}
Powerpoint Templates Page 15
Predict the output of this code

Void main()
{
int num=10;
int* pnum=NULL;
pnum = &num;
*pnum += 20;
printf("\nNumber = %d", num);
printf("\nPointer Number = %d", *pnum);
}
Powerpoint Templates Page 16
Number = 10
Pointer Number = 30

Powerpoint Templates Page 17


Work to your Brain
int a[10] = {1,2,3,4,5,6,7,8,9,12} ,*p, *q , i;
p = &a[2];
q = &a[5];
i = *q - *p;
Printf(“The value of i is %d” i );
i = *p - *q;
Printf(“The value of i is %d” i );
a[2] = a[5] = 0;
Printf(“The value of i is %d” i );

Powerpoint Templates Page 18


The value of i is 3
The value of i is -3
The value of i is 0

Powerpoint Templates Page 19


Work to your Brain

int a[10] = { 2,3,4,5,6,7,8,9,1,0 }, *p, *q;


p = &a[2];
q = p + 3;
p = q – 1;
p+ + ;
Printf(“The value of p and q are : %d , %d” *p,*q);

Powerpoint Templates Page 20


The value of p and q are : 7 , 7

Powerpoint Templates Page 21


Pointer Arithmetic
There are four arithmetic operators that can be used on pointers:
++, --, +, and -

Powerpoint Templates Page 22


Pointer Arithmetic
Given a pointer p, p+n refers to the element that is offset from p by n
positions.

a 2 p - 1

a + 1 4 p
a + 2 6 p + 1
a + 3 8 p + 2
a + 4 22 p + 3

Powerpoint Templates Page 23


Programs

Powerpoint Templates Page 24


Programs
// This program uses a pointer to display the contents of an integer
array.
#include <iostream.h>
void main(void)
{
int set[8] = {5, 10, 15, 20, 25, 30, 35, 40};
int *nums, index;
nums = set;
cout << "The numbers in set are:\n";
for (index = 0; index < 8; index++)
{
cout << *nums << " ";
nums++;
}

Powerpoint Templates Page 25


Program continues
cout << "\nThe numbers in set backwards
are:\n";
for (index = 0; index < 8; index++)
{
nums--;
cout << *nums << " ";
}
}
• Output
The numbers in set are:
5 10 15 20 25 30 35 40 Powerpoint Templates Page 26
The numbers in set backwards are:
NULL Pointers

• assign a NULL value to a pointer variable in case you do not


have an exact address to be assigned
• done at the time of variable declaration. A pointer that is
assigned NULL is called a null pointer
#include <stdio.h>
int main () Output
{ The value of ptr is 0
int *ptr = NULL;
printf("The value of ptr Powerpoint
is : %x\n", ptr );
Templates Page 27
Pointer to Pointer

What is the output?

58 58 58

Powerpoint Templates Page 28


THANK YOU

Powerpoint Templates Page 29

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy