SlideShare a Scribd company logo
2
Most read
3
Most read
4
Most read
Programming fundamentals 2
Chapter 3:Pointer
Miss:Hanan Hardam
1
Computer Skills2 for Scientific
Colleges
2
Pointers in C++
Topics to cover:
• Overview of Pointers
• Pointer Declaration
• Pointer Assignment
• Pointer Arithmetic
• Relations Between Pointers and Arrays
• Pointers and Strings
Computer Skills2 for Scientific
Colleges
3
Overview of Pointers
• A Pointer in C++ is variable whose value is a memory
address.
• With pointers many memory locations can be
referenced.
• Some data structures use pointers (e.g. linked list,
tree).
• The * and & operators
- & operator is the address operator
- * operator is the dereferencing operator. It is used in
pointers declaration
Computer Skills2 for Scientific
Colleges
4
Pointer Declaration
• Pointers are declared as follows:
<type> * variable_name ;
e.g.
int * xPtr; // xPtr is a pointer to data of type integer
char * cPtr; //cPtr is a pointer to data of type character
void * yPtr; // yPtr is a generic pointer,
// represents any type
Computer Skills2 for Scientific
Colleges
5
Pointer Assignment
• Assignment can be applied on pointers of the same type
• If not the same type, a cast operator must be used
• Exception: pointer to void does not need casting to convert a
pointer to void type
• void pointers cannot be dereferenced
• Example
int *xPtr, *yPtr; int x = 5;
…
xPtr = & x; // xPtr now points to address of x
yPtr = xPtr; // now yPtr and xPtr point to x
Computer Skills2 for Scientific
Colleges
6
Pointer Arithmetic
• Increment / decrement pointers ( ++ or -- )
• Add / subtract an integer to/from a pointer
( + or += , - or -= )
• Pointers may be subtracted from each other
• Pointer arithmetic is meaningless unless
performed on an array
Computer Skills2 for Scientific
Colleges
7
Pointer Arithmetic (Cont.)
• Example
Consider an integer array of 5 elements on a machine using 4
bytes for integers.
1000 1004 1008 1012 1016
Pointer variable vPtr
- vPtr pointes to first element V[0] (location 1000)
i.e. vPtr = 1000
- vPtr +=2; sets vPtr to 1008
i.e. vPtr points to V[2]
V[0] V[1] V[2] V[3] V[4]
Computer Skills2 for Scientific
Colleges
8
Pointer Arithmetic (Cont.)
• Subtracting pointers
- Returns the number of elements between two
addresses
e.g. if v is an array and
vPtr1 = v[0];
vPtr2 = v[2];
then vPtr2 – vPtr1 = 2 (i.e. 2 addresses)
Computer Skills2 for Scientific
Colleges
9
Relations Between Pointers and Arrays
• Arrays and pointers are closely related.
- Array name is like constant pointer
- Pointers can do array subscribing operations
- If we declare an array A[4] and a pointer aPtr
 aPtr is equal to A
aPtr == A
 aPtr is equal to the address of the first
element of A
aPtr == & A[0]
Computer Skills2 for Scientific
Colleges
10
Relations Between Pointers and Arrays (Cont.)
• Accessing array elements with pointers:
- Element A[i] can be accessed by *(aPtr+i)
 This is called pointer/offset notation
- Array itself can use pointer arithmetic
 A[3] is same as *(A+3)
- Pointers can be subscripted
(i.e. pointer/subscript notation)
 aPtr [3] is same as A[3]
Computer Skills2 for Scientific
Colleges
11
Examples on Pointers
//File: swap.cpp
//A program to call a function to swap two numbers using reference parameters
#include <iostream.h>
void swap(int *, int *); // This is swap's prototype
void main()
{ int x = 5, y = 7;
swap(&x , &y); // calling swap with reference parameters
cout << "n x is now "<< x << " and y is now " << y << 'n';
}
// swap function is defined here using dereferencing operator ‘*’
void swap(int *a, int *b)
{ int temp;
temp = *a;
*a = *b;
*b = temp;
}
Computer Skills2 for Scientific
Colleges
12
Examples on Pointers (Cont.)
//File: pointers.cpp
//A program to test pointers and references
#include <iostream.h>
void main ( )
{ int intVar = 10;
int *intPtr; // intPtr is a pointer
intPtr = & intVar;
cout << "nLocation of intVar: " << & intVar;
cout << "nContents of intVar: " << intVar;
cout << "nLocation of intPtr: " << & intPtr;
cout << "nContents of intPtr: " << intPtr;
cout << "nThe value that intPtr points to: " << * intPtr;
}
Computer Skills2 for Scientific
Colleges
13
Pointers and Strings
• Pointers can be used to declare strings and with string
functions (see next lecture slides)
When calling, the pointer formal parameter will points to the
actual parameter.
#include <iostream.h>
void Increment(int*);
void main() {
int A = 10;
Increment(&A);
cout<<A<<endl;
}
void Increment(int *X) { ++*X; }
Computer Skills2 for Scientific
Colleges
14

More Related Content

What's hot (7)

PPTX
3 2 polynomial inequalities
hisema01
 
PPTX
Introduction of Biostatistics
Sir Parashurambhau College, Pune
 
PPT
SIGN TEST SLIDE.ppt
SikoBikoAreru
 
PPTX
Application of matrices in Daily life
shubham mishra
 
PPTX
Matrix multiplication
Bobby Bloch
 
PPTX
Categorical and Numerical Variables
TanirikaGodiyal
 
PPT
Quartile in Statistics
HennaAnsari
 
3 2 polynomial inequalities
hisema01
 
Introduction of Biostatistics
Sir Parashurambhau College, Pune
 
SIGN TEST SLIDE.ppt
SikoBikoAreru
 
Application of matrices in Daily life
shubham mishra
 
Matrix multiplication
Bobby Bloch
 
Categorical and Numerical Variables
TanirikaGodiyal
 
Quartile in Statistics
HennaAnsari
 

Similar to Programming fundamentals 2:pointers in c++ clearly explained (20)

PPT
divergence in intelligent ppis in gastro patients.ppt
DjangoVijay
 
PPTX
Pointers in c v5 12102017 1
tanmaymodi4
 
PPTX
Pointers in c language
Tanmay Modi
 
PPTX
INTRODUCTION TO POINTER IN c++ AND POLYMORPHISM
M.H.Saboo Siddik Polytechnic
 
PPTX
C pointer
University of Potsdam
 
PPTX
unit-7 Pointerdesfsdfsdgsdgaa notes.pptx
TriggeredZulkar
 
PDF
C++ computer language chapter 4 pointers.pdf
birukh36
 
PPT
Basics of pointer, pointer expressions, pointer to pointer and pointer in fun...
Jayanshu Gundaniya
 
PDF
C Pointers
omukhtar
 
PPTX
Object Oriented Programming using C++: Ch10 Pointers.pptx
RashidFaridChishti
 
PPTX
Pointer in C++
Mauryasuraj98
 
PPTX
Pointers
Vardhil Patel
 
PPT
Diploma ii cfpc- u-5.1 pointer, structure ,union and intro to file handling
Rai University
 
PPTX
C Programming : Pointers and Arrays, Pointers and Strings
Selvaraj Seerangan
 
PPTX
FYBSC(CS)_UNIT-1_Pointers in C.pptx
sangeeta borde
 
PPTX
POLITEKNIK MALAYSIA
Aiman Hud
 
PPTX
Pointers and single &multi dimentionalarrays.pptx
Ramakrishna Reddy Bijjam
 
PDF
Chapter 5 (Part I) - Pointers.pdf
TamiratDejene1
 
PPTX
UNIT 4 POINTERS.pptx pointers pptx for basic c language
wwwskrilikeyou
 
divergence in intelligent ppis in gastro patients.ppt
DjangoVijay
 
Pointers in c v5 12102017 1
tanmaymodi4
 
Pointers in c language
Tanmay Modi
 
INTRODUCTION TO POINTER IN c++ AND POLYMORPHISM
M.H.Saboo Siddik Polytechnic
 
unit-7 Pointerdesfsdfsdgsdgaa notes.pptx
TriggeredZulkar
 
C++ computer language chapter 4 pointers.pdf
birukh36
 
Basics of pointer, pointer expressions, pointer to pointer and pointer in fun...
Jayanshu Gundaniya
 
C Pointers
omukhtar
 
Object Oriented Programming using C++: Ch10 Pointers.pptx
RashidFaridChishti
 
Pointer in C++
Mauryasuraj98
 
Pointers
Vardhil Patel
 
Diploma ii cfpc- u-5.1 pointer, structure ,union and intro to file handling
Rai University
 
C Programming : Pointers and Arrays, Pointers and Strings
Selvaraj Seerangan
 
FYBSC(CS)_UNIT-1_Pointers in C.pptx
sangeeta borde
 
POLITEKNIK MALAYSIA
Aiman Hud
 
Pointers and single &multi dimentionalarrays.pptx
Ramakrishna Reddy Bijjam
 
Chapter 5 (Part I) - Pointers.pdf
TamiratDejene1
 
UNIT 4 POINTERS.pptx pointers pptx for basic c language
wwwskrilikeyou
 
Ad

Recently uploaded (20)

PPT
Talk on Critical Theory, Part One, Philosophy of Social Sciences
Soraj Hongladarom
 
PDF
The Constitution Review Committee (CRC) has released an updated schedule for ...
nservice241
 
PDF
Chapter-V-DED-Entrepreneurship: Institutions Facilitating Entrepreneurship
Dayanand Huded
 
PDF
LAW OF CONTRACT (5 YEAR LLB & UNITARY LLB )- MODULE - 1.& 2 - LEARN THROUGH P...
APARNA T SHAIL KUMAR
 
PPTX
How to Set Maximum Difference Odoo 18 POS
Celine George
 
PPTX
ASRB NET 2023 PREVIOUS YEAR QUESTION PAPER GENETICS AND PLANT BREEDING BY SAT...
Krashi Coaching
 
PDF
ARAL-Orientation_Morning-Session_Day-11.pdf
JoelVilloso1
 
PDF
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 - GLOBAL SUCCESS - CẢ NĂM - NĂM 2024 (VOCABULARY, ...
Nguyen Thanh Tu Collection
 
PDF
The-Ever-Evolving-World-of-Science (1).pdf/7TH CLASS CURIOSITY /1ST CHAPTER/B...
Sandeep Swamy
 
PPTX
CATEGORIES OF NURSING PERSONNEL: HOSPITAL & COLLEGE
PRADEEP ABOTHU
 
PPTX
STAFF DEVELOPMENT AND WELFARE: MANAGEMENT
PRADEEP ABOTHU
 
PPTX
Unit 2 COMMERCIAL BANKING, Corporate banking.pptx
AnubalaSuresh1
 
PPTX
Stereochemistry-Optical Isomerism in organic compoundsptx
Tarannum Nadaf-Mansuri
 
PDF
Dimensions of Societal Planning in Commonism
StefanMz
 
PDF
Lesson 2 - WATER,pH, BUFFERS, AND ACID-BASE.pdf
marvinnbustamante1
 
PPTX
2025 Winter SWAYAM NPTEL & A Student.pptx
Utsav Yagnik
 
PDF
Generative AI: it's STILL not a robot (CIJ Summer 2025)
Paul Bradshaw
 
PPTX
How to Set Up Tags in Odoo 18 - Odoo Slides
Celine George
 
PPTX
A PPT on Alfred Lord Tennyson's Ulysses.
Beena E S
 
PDF
Stokey: A Jewish Village by Rachel Kolsky
History of Stoke Newington
 
Talk on Critical Theory, Part One, Philosophy of Social Sciences
Soraj Hongladarom
 
The Constitution Review Committee (CRC) has released an updated schedule for ...
nservice241
 
Chapter-V-DED-Entrepreneurship: Institutions Facilitating Entrepreneurship
Dayanand Huded
 
LAW OF CONTRACT (5 YEAR LLB & UNITARY LLB )- MODULE - 1.& 2 - LEARN THROUGH P...
APARNA T SHAIL KUMAR
 
How to Set Maximum Difference Odoo 18 POS
Celine George
 
ASRB NET 2023 PREVIOUS YEAR QUESTION PAPER GENETICS AND PLANT BREEDING BY SAT...
Krashi Coaching
 
ARAL-Orientation_Morning-Session_Day-11.pdf
JoelVilloso1
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 - GLOBAL SUCCESS - CẢ NĂM - NĂM 2024 (VOCABULARY, ...
Nguyen Thanh Tu Collection
 
The-Ever-Evolving-World-of-Science (1).pdf/7TH CLASS CURIOSITY /1ST CHAPTER/B...
Sandeep Swamy
 
CATEGORIES OF NURSING PERSONNEL: HOSPITAL & COLLEGE
PRADEEP ABOTHU
 
STAFF DEVELOPMENT AND WELFARE: MANAGEMENT
PRADEEP ABOTHU
 
Unit 2 COMMERCIAL BANKING, Corporate banking.pptx
AnubalaSuresh1
 
Stereochemistry-Optical Isomerism in organic compoundsptx
Tarannum Nadaf-Mansuri
 
Dimensions of Societal Planning in Commonism
StefanMz
 
Lesson 2 - WATER,pH, BUFFERS, AND ACID-BASE.pdf
marvinnbustamante1
 
2025 Winter SWAYAM NPTEL & A Student.pptx
Utsav Yagnik
 
Generative AI: it's STILL not a robot (CIJ Summer 2025)
Paul Bradshaw
 
How to Set Up Tags in Odoo 18 - Odoo Slides
Celine George
 
A PPT on Alfred Lord Tennyson's Ulysses.
Beena E S
 
Stokey: A Jewish Village by Rachel Kolsky
History of Stoke Newington
 
Ad

Programming fundamentals 2:pointers in c++ clearly explained

  • 1. Programming fundamentals 2 Chapter 3:Pointer Miss:Hanan Hardam 1
  • 2. Computer Skills2 for Scientific Colleges 2 Pointers in C++ Topics to cover: • Overview of Pointers • Pointer Declaration • Pointer Assignment • Pointer Arithmetic • Relations Between Pointers and Arrays • Pointers and Strings
  • 3. Computer Skills2 for Scientific Colleges 3 Overview of Pointers • A Pointer in C++ is variable whose value is a memory address. • With pointers many memory locations can be referenced. • Some data structures use pointers (e.g. linked list, tree). • The * and & operators - & operator is the address operator - * operator is the dereferencing operator. It is used in pointers declaration
  • 4. Computer Skills2 for Scientific Colleges 4 Pointer Declaration • Pointers are declared as follows: <type> * variable_name ; e.g. int * xPtr; // xPtr is a pointer to data of type integer char * cPtr; //cPtr is a pointer to data of type character void * yPtr; // yPtr is a generic pointer, // represents any type
  • 5. Computer Skills2 for Scientific Colleges 5 Pointer Assignment • Assignment can be applied on pointers of the same type • If not the same type, a cast operator must be used • Exception: pointer to void does not need casting to convert a pointer to void type • void pointers cannot be dereferenced • Example int *xPtr, *yPtr; int x = 5; … xPtr = & x; // xPtr now points to address of x yPtr = xPtr; // now yPtr and xPtr point to x
  • 6. Computer Skills2 for Scientific Colleges 6 Pointer Arithmetic • Increment / decrement pointers ( ++ or -- ) • Add / subtract an integer to/from a pointer ( + or += , - or -= ) • Pointers may be subtracted from each other • Pointer arithmetic is meaningless unless performed on an array
  • 7. Computer Skills2 for Scientific Colleges 7 Pointer Arithmetic (Cont.) • Example Consider an integer array of 5 elements on a machine using 4 bytes for integers. 1000 1004 1008 1012 1016 Pointer variable vPtr - vPtr pointes to first element V[0] (location 1000) i.e. vPtr = 1000 - vPtr +=2; sets vPtr to 1008 i.e. vPtr points to V[2] V[0] V[1] V[2] V[3] V[4]
  • 8. Computer Skills2 for Scientific Colleges 8 Pointer Arithmetic (Cont.) • Subtracting pointers - Returns the number of elements between two addresses e.g. if v is an array and vPtr1 = v[0]; vPtr2 = v[2]; then vPtr2 – vPtr1 = 2 (i.e. 2 addresses)
  • 9. Computer Skills2 for Scientific Colleges 9 Relations Between Pointers and Arrays • Arrays and pointers are closely related. - Array name is like constant pointer - Pointers can do array subscribing operations - If we declare an array A[4] and a pointer aPtr  aPtr is equal to A aPtr == A  aPtr is equal to the address of the first element of A aPtr == & A[0]
  • 10. Computer Skills2 for Scientific Colleges 10 Relations Between Pointers and Arrays (Cont.) • Accessing array elements with pointers: - Element A[i] can be accessed by *(aPtr+i)  This is called pointer/offset notation - Array itself can use pointer arithmetic  A[3] is same as *(A+3) - Pointers can be subscripted (i.e. pointer/subscript notation)  aPtr [3] is same as A[3]
  • 11. Computer Skills2 for Scientific Colleges 11 Examples on Pointers //File: swap.cpp //A program to call a function to swap two numbers using reference parameters #include <iostream.h> void swap(int *, int *); // This is swap's prototype void main() { int x = 5, y = 7; swap(&x , &y); // calling swap with reference parameters cout << "n x is now "<< x << " and y is now " << y << 'n'; } // swap function is defined here using dereferencing operator ‘*’ void swap(int *a, int *b) { int temp; temp = *a; *a = *b; *b = temp; }
  • 12. Computer Skills2 for Scientific Colleges 12 Examples on Pointers (Cont.) //File: pointers.cpp //A program to test pointers and references #include <iostream.h> void main ( ) { int intVar = 10; int *intPtr; // intPtr is a pointer intPtr = & intVar; cout << "nLocation of intVar: " << & intVar; cout << "nContents of intVar: " << intVar; cout << "nLocation of intPtr: " << & intPtr; cout << "nContents of intPtr: " << intPtr; cout << "nThe value that intPtr points to: " << * intPtr; }
  • 13. Computer Skills2 for Scientific Colleges 13 Pointers and Strings • Pointers can be used to declare strings and with string functions (see next lecture slides)
  • 14. When calling, the pointer formal parameter will points to the actual parameter. #include <iostream.h> void Increment(int*); void main() { int A = 10; Increment(&A); cout<<A<<endl; } void Increment(int *X) { ++*X; } Computer Skills2 for Scientific Colleges 14