I was practising with C++ Pointers and trying different things and came to know about this thing:
The Variables number 1 and number 2 does not has the address they stores integer but the function swap wants two pointers But this works...
But it should only give the answer with the & or pointers. Why This happens and if this is valid then what we call it?
Kindly guide Me!!!!
Complete Code is:
#include<iostream>
using namespace std;
void swap (int *, int *);
int main()
{
int number_1 =0;
int number_2=0;
cout<<"Please Enter The First Number : ";
cin>>number_1;
cout<<"Please Enter The Second Number : ";
cin>>number_2;
int *ptr_number_1=&number_1;
int *ptr_number_2=&number_2;
cout<<"Before The Function Call Numbers Are : "<<endl;
cout<<"Number 1 Contains : " << number_1<<endl;
cout<<"Number 2 Contains : " << number_2<<endl;
cout<<"=================================="<<endl;
cout<<"Calling the Function with the direct variables : "<<endl;
cout<<"After The Function Call Numbers Are : "<<endl;
swap (number_1,number_2);
cout<<"Number 1 Contains : " << number_1<<endl;
cout<<"Number 2 Contains : " << number_2<<endl;
cout<<endl;
cout<<"=================================="<<endl;
cout<<"=================================="<<endl;
cout<<"Calling the Function with the Reference Operator : "<<endl;
cout<<"After The Function Call Numbers Are : "<<endl;
swap (&number_1,&number_2);
cout<<"Number 1 Contains : " << number_1<<endl;
cout<<"Number 2 Contains : " << number_2<<endl;
cout<<endl;
cout<<"=================================="<<endl;
cout<<"=================================="<<endl;
cout<<"Calling the Function with the Pointers : "<<endl;
cout<<"After The Function Call Numbers Are : "<<endl;
swap (ptr_number_1,ptr_number_2);
cout<<"Number 1 Contains : " << number_1<<endl;
cout<<"Number 2 Contains : " << number_2<<endl;
cout<<endl;
cout<<"=================================="<<endl;
cout<<endl;
return 0;
}
void swap (int *number_1, int *number_2){
int temp_number_variable =0;
temp_number_variable = *number_2;
*number_2 = *number_1;
*number_1 = temp_number_variable;
}