Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
P1
1. Prepared By : Rakesh Kumar D.A.V.Centenary Public School Chander Nagar
Pointer in C++
Pointer is a special variable, used to store the address of another variable of same data type.
#include<iostream>
#include<conio.h> a
using namespace std;
int main() 5
{
int a; 10234
a=5;
cout<<"n Value of a :"<<a; // 5 is the value stored at a
cout<<"n Address of a :"<<&a; // 10234 is the address of variable a
getch( );
return 0;
}
& :- is known as address operator
* :- is known as value operator if it is operative on address, otherwise it behaves like a multiplication
operator
Arithmetic Operation on Pointer : Only allowed arithmetic operation is addition(+) and Subtraction(-)
Program Output
#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
int a;
a=5;
int *b;
b=&a;
cout<<"n Value of b :"<<b<<endl;
b=b+1 ; // increase block size
cout<<"n New value of b :"<<b<<endl;
getch();
return 0;
}
Pointer of Pointer
Program Output
#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
int a;
a=5;
int *b;
b=&a;
int **c;
c=&b;
int ***d;
d=&c;
cout<<"n Address of ann";
cout<<"n Using &a :"<<&a;
cout<<"n Using b :"<<b;
cout<<"n Using *c :"<<*c;
cout<<"n Using **d :"<<**d;
cout<<"nnn Value of an";
cout<<"n Using a :"<<a;
Page 1 of 11
2. Prepared By : Rakesh Kumar D.A.V.Centenary Public School Chander Nagar
cout<<"n Using *(&a) :"<<*(&a);
cout<<"n Using *b :"<<*b;
cout<<"n Using **c :"<<**c;
cout<<"n Using ***d :"<<***d;
getch();
return 0;
}
Pointer as a function parameter
Program Output
// program to demonstrate call by pointer method
#include<iostream>
#include<conio.h>
using namespace std;
void change(int *a) // parameter as pointer
{
*a = *a+20;
}
int main()
{
int x=20;
cout<<"n Value of x before function call:"<<x;
change(&x); // passing parameter
cout<<"n Value of x before function call:"<<x;
getch();
return 0;
}
Pointer as a function Return type value
Program Output
#include<iostream>
#include<conio.h>
using namespace std;
int* read(void)
{
int a;
a=20;
return(&a);
}
int main()
{
int *res;
res = read(); // store retured address
cout<<"n Value of a :"<<*res;
cout<<"n Value of a :"<<*(read());
getch();
return 0;
}
Pointer and Array
When an array is defined like
int x[5]; // The memory block is as shown below
X
100 102 104 106 108
The address of 0th index block is called BASE ADDRESS and it can be obtained by the following
methods
Page 2 of 11
3. Prepared By : Rakesh Kumar D.A.V.Centenary Public School Chander Nagar
(a) x -> 100
(b) &x[0] ->100
(c) x+0 ->100
(d) 0+x ->100
(e) &0[x] ->100
Processing array as a pointer without using any extra pointer variable
Program Output
// program to access array as
a pointer
#include<iostream>
#include<iomanip>
#include<conio.h>
#include<math.h>
using namespace std;
int main()
{
int x[10],i;
// input phase
for(i=0;i<10;i++)
{
cout<<"Enter value :";
cin>>x[i];
}
// output
cout<<"n Output using as
a pointer:n";
for(i=0;i<10;i++)
cout<<setw(6)<<*(x+i);
getch();
return 0;
}
Processing array as a pointer using extra pointer variable
Program Output
#include<iostream>
#include<iomanip>
#include<conio.h>
#include<math.h>
using namespace std;
int main()
{
int x[10],i,*p;
p= x; // assign base
address to p
// input phase
for(i=0;i<10;i++)
x[i]=rand();
// output
for(i=0;i<10;i++)
{
cout<<setw(6)<<*p;
p++;
}
getch();
return 0;
}
Page 3 of 11
4. Prepared By : Rakesh Kumar D.A.V.Centenary Public School Chander Nagar
Accessing pointer as an array
Program Output
#include<iostream>
#include<iomanip>
#include<conio.h>
#include<math.h>
using namespace std;
void change(int *x)
{
int i;
for(i=0;i<10;i++)
x[i]=x[i]+20;
}
int main()
{
int x[10],i;
// input phase
for(i=0;i<10;i++)
{
cout<<"Enter value :";
cin>>x[i];
}
// processing phase
change(x);
// output phase
cout<<"n Modified List :";
for(i=0;i<10;i++)
cout<<setw(6)<<x[i];
getch();
return 0;
}
Pointer & String
String : it is an array of character, which always terminates with NULL (‘0’).
Char str[80]=”RAKESH”; // It’s allocation in stin is as follows
0 1 2 3 4 5 6 7 8 9 ……………………………………………………..79
R A K E S H 0
101 102 103 104 105………………………………………………………………………… ………180
cout<<str; // Please note that only the base address of string has been given to cout
// and cout is here print the whole string not the base address
Result : RAKESH
Example 2.
char str[80]=”RAKESH”;
cout<<*str; // now compiler try to print value stored at base address
Result : ‘R’
Example 3
char str[80]=”RAKESH”;
cout<<*++str; // process nearest first
Result : ‘A’
Page 4 of 11
5. Prepared By : Rakesh Kumar D.A.V.Centenary Public School Chander Nagar
Example 4
char str[80]=”RAKESH”;
cout<<++*str; // process nearest first
Result : ‘S’
Example 5
char str[80]=”RAKESH”;
cout<<++str; // print 101 address onward upto NULL
Result : AKESH
Pointers and Structure
Assigning and Accesssing structure type Pointers
#include<iostream>
#include<conio.h>
using namespace std;
struct student
{
int roll;
char name[30];
char address[60];
};
int main()
{
student s;
student *s1;
s1= &s;
//input phase
cout<<"n Enter roll no :";
cin>>s.roll;
cout<<"n Enter name :";
cin>>s.name;
cout<<"n Enter address :";
cin>>s.address;
// output - using pointer variable
cout<<"n Roll :"<<(*s1).roll; // s1->roll
cout<<"n Nane :"<<(*s1).name; // s1->name;
cout<<"n Address :"<<(*s1).address; // s1->address
getch();
return 0;
}
Page 5 of 11
6. Prepared By : Rakesh Kumar D.A.V.Centenary Public School Chander Nagar
New ( ) : This function is used to assign memory to a pointer variable from the available memory heap. The
function is responsible to calculate no of bytes and types of data, required.
Delete ( ) : This function is used to release assigned pointer memory to memory heap
Accessing Pointer Variable using new( ) and delete ( ) function
#include<iostream>
#include<conio.h>
using namespace std;
struct student
{
int roll;
char name[30];
char address[60];
};
int main()
{
student *s;
s= new(student);
//input phase
cout<<"n Enter roll no :";
cin>>s->roll;
cout<<"n Enter name :";
cin>>s->name;
cout<<"n Enter address :";
cin>>s->address;
// output - using pointer variable
cout<<"n Roll :"<<s->roll;
cout<<"n Name :"<<s->name;
cout<<"n Address :"<<s->address;
delete(s);
getch();
return 0; }
Self Referential Structure: A structure which can have a variable of it’s own type inside it’s declaration,
then the structure is known as self referential structure.
Example
struct student
{
Int roll;
` student *s;
};
Example of link list
#include<iostream>
#include<iomanip>
#include<conio.h>
using namespace std;
struct node
{
int info;
node *ptr;
};
int main()
{
node *x,*y,*temp ;
x= NULL;
int choice;
do
{
system("cls");
cout<<"n 1. Add at beginning";
Page 6 of 11
7. Prepared By : Rakesh Kumar D.A.V.Centenary Public School Chander Nagar
cout<<"n 2. Add at end";
cout<<"n 3. Delete from beginning";
cout<<"n 4. Display ";
cout<<"n 5. Exit";
cout<<"nnn Enter your choice :";
cin>>choice;
switch(choice)
{
case 1: if(x==NULL)
{
x = new(node);
cout<<"n Enter value :";
cin>>x->info;
x->ptr = NULL;
}
else
{
temp = new(node);
cout<<"n Enter value :";
cin>>temp->info;
temp->ptr = x;
x = temp;
}
break;
case 2: if(x==NULL)
{
x = new(node);
cout<<"n Enter value :";
cin>>x->info;
x->ptr = NULL;
}
else
{
y =x;
while(y->ptr!=NULL)
y = y->ptr;
y->ptr = new(node);
y = y->ptr;
cout<<"n Enter value :";
cin>>y->info;
y->ptr = NULL;
}
break;
case 3:
if(x==NULL)
{
cout<<"n Link List empty";
getch();
}
else
{
temp =x;
x = x->ptr;
delete(temp);
}
break;
case 4:
if(x==NULL)
cout<<"n Link list empty";
else
{
y = x;
while(y!=NULL)
{
cout<<setw(6)<<y->info;
y = y->ptr;
Page 7 of 11
8. Prepared By : Rakesh Kumar D.A.V.Centenary Public School Chander Nagar
}
}
getch();
break;
case 5: break;
default:
cout<<"n Wrong Choice.... Try again";
getch();
} // end of switch statement
}while(choice!=5);
return 0;
}
LINK LIST EMPLEMENTED STACK
#include<iostream>
#include<iomanip>
#include<conio.h>
using namespace std;
struct node
{
int info;
node *ptr;
};
class stack
{
node *x,*y,*temp;
public:
stack() // constructor to initialize variable
{
x= NULL;
}
void push(void); // function to add element
void pop(void); // function to delete element
void display(void); // function to display stack element
};
void stack::push()
{
if(x==NULL)
{
x = new(node);
cout<<"n Enter value :";
cin>>x->info;
x->ptr = NULL;
}
else
{
temp = new(node);
cout<<"n Enter value :";
cin>>temp->info;
temp->ptr = x;
x = temp;
}
return;
}
void stack::pop(void)
{
if(x==NULL)
{
cout<<"n Stack is empty";
getch();
}
else
Page 8 of 11
9. Prepared By : Rakesh Kumar D.A.V.Centenary Public School Chander Nagar
{
temp =x;
x = x->ptr;
delete(temp);
}
return;
}
void stack::display()
{
if(x==NULL)
cout<<"n Link list empty";
else
{
y = x;
while(y!=NULL)
{
cout<<setw(6)<<y->info;
y = y->ptr;
}
}
return;
}
int main()
{
stack S;
int choice;
do
{
system("cls");
cout<<"n S T A C K M E N U ";
cout<<"n 1. Push";
cout<<"n 2. Pop";
cout<<"n 3. Display ";
cout<<"n 4. Exit";
cout<<"nnn Enter your choice :";
cin>>choice;
switch(choice)
{
case 1: S.push();
break;
case 2: S.pop();
break;
case 3: S.display();
getch();
break;
case 4: break;
default:
cout<<"n Wrong Choice.... Try again";
getch();
}
}while(choice!=4);
return 0;
}
Link List Implemented queue
#include<iostream>
#include<iomanip>
#include<conio.h>
using namespace std;
struct node
{
Page 9 of 11
10. Prepared By : Rakesh Kumar D.A.V.Centenary Public School Chander Nagar
int info;
node *ptr;
};
class queue
{
node *x,*y,*temp;
public:
queue() // constructor to initliaze variable
{
x= NULL;
}
void add_element(void); // function to add element
void delete_element(void); // function to delete element
void display(void); // function to display stack element
};
void queue::add_element()
{
if(x==NULL)
{
x = new(node);
cout<<"n Enter value :";
cin>>x->info;
x->ptr = NULL;
}
else
{
y = x;
while(y->ptr!=NULL)
y = y->ptr;
y->ptr = new(node);
y = y->ptr;
cout<<"n Enter value :";
cin>>y->info;
y->ptr = NULL;
}
return;
}
void queue::delete_element(void)
{
if(x==NULL)
{
cout<<"n queue is empty";
getch();
}
else
{
temp =x;
x = x->ptr;
delete(temp);
}
return;
}
void queue::display()
{
if(x==NULL)
cout<<"n Queue is empty";
else
{
y = x;
while(y!=NULL)
{
cout<<setw(6)<<y->info;
y = y->ptr;
Page 10 of 11
11. Prepared By : Rakesh Kumar D.A.V.Centenary Public School Chander Nagar
}
}
return;
}
int main()
{
queue q;
int choice;
do
{
system("cls");
cout<<"n QUEUE M E N U ";
cout<<"n 1. Add Element";
cout<<"n 2. Delete Element";
cout<<"n 3. Display ";
cout<<"n 4. Exit";
cout<<"nnn Enter your choice :";
cin>>choice;
switch(choice)
{
case 1: q.add_element();
break;
case 2: q.delete_element();
break;
case 3: q.display();
getch();
break;
case 4:
break;
default:
cout<<"n Wrong Choice.... Try again";
getch();
}
}while(choice!=4);
return 0;
}
Page 11 of 11